2015-07-07 1 views
0

У меня были проблемы с движением игрока. Дело в том, что движение контролируется четырьмя клавишами со стрелками, и, когда один из них нажат, символ перемещается в этом направлении. Однако, если игрок не поднимает палец, прежде чем отойти от кнопки, игрок движется на неопределенный срок. Код выглядит следующим образом:Не останавливающееся движение

function moveright(self,event) 
    self.x=self.x+2 
end 

function rightkeypressed(event) 
    if event.phase == "began" then 
     knight.enterFrame = moveright 
     Runtime:addEventListener("enterFrame",knight) 
    end 

    if event.phase == "ended" or event.phase == "cancelled" then 
     Runtime:removeEventListener("enterFrame",knight) 
    end 
end 

rightkey:addEventListener("touch",rightkeypressed) 

Это то же самое для всех четырех направлений.

+0

Не могли бы Вы более конкретно о том, что вы хотите, чтобы это произошло, и включают в себя более кода. –

ответ

0

Очень просто, как только вы понимаете, сенсорными слушателей

if event.phase == "ended" or event.phase == "cancelled" then 
    knight.enterFrame = moveright 

    Runtime:addEventListener("enterFrame",knight) 
    Runtime:removeEventListener("enterFrame",knight) 
end 

Это должно работать, если у вас есть какие-либо вопросы или не работает просто спросите