我正在制作一款游戏,其中我有一个角色,当屏幕被触摸时,我想在x轴上移动。我设法做到了这一点,但是只要屏幕被触摸,而不是只移动一次,我就希望对象继续移动。我怎样才能做到这一点?Corona SDK:如何使对象移动
回答
您可以在运行时对象上使用触摸监听器:
Runtime:addEventListener("touch", buttonPressed)
,或者创建一个不可见的按钮覆盖整个屏幕。
Corona SDK中的触摸事件只发生在某些事情发生变化时,例如触摸开始,结束或检测到手指移动时。如果你想在按钮被按下的时候继续下去,它将需要一个“enterFrame”事件。
local buttonPressed = false
local function moveCharacter(event)
if buttonPressed then
character.x = characterx + 1
end
end
local function buttonPressed(event)
if event.phase == "began" then
buttonPressed = true
elseif event.phase == "ended" then
buttonPressed = false
end
return true
end
local myButton = display.newRect(0,0,64,48)
myButton:addEventListenr("touch", buttonPressed)
Runtime:addEventListener("enterFrame", moveCharacter)
在这种情况下,enterFrame监听器会在按钮的状态被按下时移动角色。现在,您可能不希望每秒将字符移动一个像素30次,因此您需要确定移动它的像素数量。你的buttonPressed只是成为一种方法来打开一个标志,导致移动功能的工作。
我真的不想添加一个按钮,我认为他们浪费空间,是不是有其他方法呢?我已经研究过使用翻译,但角色只是飞离屏幕。 – Dangerosking
添加一个覆盖整个屏幕的隐形按钮: –
如果我这样做了,我只能在一个方向上移动角色 – Dangerosking
- 1. Corona SDK:如何让对象向前移动?
- 2. 如何减慢物理对象在Corona SDK中的移动
- 3. 如何在corona sdk中创建,移动和移除动态对象?
- 4. 如何在corona sdk中移动物体?
- 5. 如何关注Corona SDK中的对象
- 6. Corona SDK如何删除一个对象?
- 7. Corona sdk场景移动
- 8. 如何用Corona SDK有效处理对象的移除?
- 9. Corona SDK对象路径
- 10. Corona SDK,当对象正在移动时临时禁用eventListeners
- 11. 如何创建使对象在Corona中移动的按钮
- 12. Corona Labs - 如何移除所有对象?
- 13. 如何使用lua与corona sdk向上移动身体?
- 14. 如何在Lua(使用Corona SDK)之后使对象处于非活动状态?
- 15. 试图让一个对象向用户滑动的方向移动:Corona SDK
- 16. Corona sdk阻止球的移动
- 17. D-PAD或游戏杆移动Corona SDK
- 18. 如何使用Corona SDK有效地处理对象的对象删除
- 19. 从Corona SDK中的事件中移除对象
- 20. Corona SDK偏移量不好
- 21. 在Corona SDK中点击显示对象
- 22. 转换对象两次? (Corona SDK)
- 23. Corona SDK:导演类和分组对象
- 24. Corona SDK:延迟后删除对象
- 25. Corona SDK,带显示对象的OOP
- 26. Corona SDK动画newImageRect
- 27. 如何在Corona SDK中将event.phase ==“移动”设置为focus?
- 28. 如何在Corona SDK中滑动页面
- 29. Corona SDK:如何在转换过程中减慢对象
- 30. Corona SDK:如何在转换完成后重新创建对象?
正如我所说的那样,当屏幕被触摸时,角色不会继续移动。 – Dangerosking
您仍然需要enterFrame才能使用它。触摸只是打开一个标志,enterFrame需要知道是否移动字符。 –
enterFrame事件似乎没有在任何点触发 – Dangerosking