Вот что у меня есть пушка в моей игре, которую я хочу, чтобы иметь возможность поворачивать пальцем. Я хочу, чтобы наконечник всегда указывал в противоположном направлении, где палец перетаскивается, т. Е. Кончик должен указывать на верхний правый, если палец перетаскивается в левый нижний.Поверните объект, связанный с центром
Я просто не могу понять, как заставить это работать. Я сумел заставить его вращаться, используя следующий код:
local function rotateObj(event)
local t = event.target
local phase = event.phase
if (phase == "began") then
display.getCurrentStage():setFocus(t)
t.isFocus = true
-- Store initial position of finger
t.x1 = event.x
t.y1 = event.y
elseif t.isFocus then
if (phase == "moved") then
t.x2 = event.x
t.y2 = event.y
angle1 = 180/math.pi * math.atan2(t.y1 - t.y , t.x1 - t.x)
angle2 = 180/math.pi * math.atan2(t.y2 - t.y , t.x2 - t.x)
print("angle1 = "..angle1)
rotationAmt = angle1 - angle2
--rotate it
t.rotation = t.rotation - rotationAmt
print ("t.rotation = "..t.rotation)
t.x1 = t.x2
t.y1 = t.y2
elseif (phase == "ended") then
display.getCurrentStage():setFocus(nil)
t.isFocus = false
end
end
-- Stop further propagation of touch event
return true
end
cannon:addEventListener("touch", rotateObj)
Хотя это позволяет мне повернуть мою пушку, он не держать кончик реляционные туда, где я тащу. Я понятия не имею, куда даже пойти отсюда.
Спасибо! Это сделало именно то, что я хотел. Мало того, что этот код намного меньше моего исходного кода, но он также очень прост в использовании. Весьма признателен! – Cleverbird
На самом деле, я заметил одну небольшую ошибку ... Теперь пушка теперь перемещается всякий раз, когда я касаюсь экрана, а не только при касании пушки. Есть ли способ заставить это работать, только если пользователь касается пушки? – Cleverbird
Я должен начать сначала разобраться в себе, затем задавать вопросы. Это было легко исправлено, изменив прослушиватель событий времени выполнения на: cannon: addEventListener («touch», cannon) – Cleverbird