Я использую this simple virtual joystick module, я пытаюсь заставить своего игрока вращаться в 360-градусном направлении в соответствии с углом джойстика, но он не работает правильно.360 виртуальный поворот джойстика
Вот наиболее соответствующий код из модуля:
local radToDeg = 180/math.pi
local degToRad = math.pi/180
-- where should joystick motion be stopped?
local stopRadius = outerRadius - innerRadius
local directionId = 0
local angle = 0
local distance = 0
function joystick:touch(event)
local phase = event.phase
if((phase=='began') or (phase=="moved")) then
if(phase == 'began') then
stage:setFocus(event.target, event.id)
end
local parent = self.parent
local posX, posY = parent:contentToLocal(event.x, event.y)
angle = (math.atan2(posX, posY)*radToDeg)-90
if(angle < 0) then
angle = 360 + angle
end
-- could expand to include more directions (e.g. 45-deg)
if((angle>=45) and (angle<135)) then
directionId = 2
elseif((angle>=135) and (angle<225)) then
directionId = 3
elseif((angle>=225) and (angle<315)) then
directionId = 4
else
directionId = 1
end
distance = math.sqrt((posX*posX)+(posY*posY))
if(distance >= stopRadius) then
distance = stopRadius
local radAngle = angle*degToRad
self.x = distance*math.cos(radAngle)
self.y = -distance*math.sin(radAngle)
else
self.x = posX
self.y = posY
end
else
self.x = 0
self.y = 0
stage:setFocus(nil, event.id)
directionId = 0
angle = 0
distance = 0
end
return true
end
function joyGroup:getAngle()
return angle
end
Вот как я пытаюсь переместить плеер после установки джойстика:
local angle = joyStick.getAngle()
player.rotation = angle
angle
и player.rotation
имеют точно такой же но игрок вращается в другом направлении, чем джойстик, потому что поворот по умолчанию для джойстика 0 направлен вправо (восток), и он идет против часовой стрелки.
"-угол + 90" сделал трюк, но теперь проблема в том, что вращение по умолчанию игрока всегда будет 90 (вправо), поскольку я использую это в «enterFrame». Могу ли я сделать поворот 0 самого джойстика в направлении вверх (север), чтобы он стал таким же, как и объект, который вращается? – Abdou023
Я не уверен, что вы хотите, но я отредактировал свой ответ, чтобы решить вашу последнюю проблему. – ldurniat
Большое спасибо. Так оно и было. – Abdou023