В моей игре Corona в углу экрана размещена графика джойстика.
Когда пользователь касается джойстика и перетаскивает его из стороны в сторону, он перемещает персонажа. Однако, если пользователь перетаскивает из середины джойстика в сторону , а затем убирает палец, персонаж продолжает двигаться. Мне бы хотелось, чтобы персонаж остановился при доделывании, даже если обводки больше нет на графике джойстика.
Изображение джойстика подписывается на «сенсорный» слушатель с control:addEventListener( "touch", onTouch )
.
Код джойстика ниже:
-- Constants
local playerSpeed = 300
local playerDamping = 15
-- Player controls
local onTouch = function( event )
-- Player rotation
local deltaX = event.x - control.x
local deltaY = event.y - control.y
local magnitude = math.sqrt( deltaX * deltaX + deltaY * deltaY )
player.rotation = math.deg( math.atan2 ( deltaY, deltaX ) )
-- Player speed
if event.phase == "ended" then
player.linearDamping = playerDamping
else
player.linearDamping = 0
player:setLinearVelocity( deltaX / magnitude * playerSpeed, deltaY / magnitude * playerSpeed )
end
end
Есть идеи? Спасибо!