0

我是 Corona 的新手,正在寻找操纵移动物体的一些帮助:

基本上我想要一个设置,当我可以单击移动对象时,会弹出一个对话框,让我可以选择更改对象的速度和行进矢量。我很确定我可以弄清楚事件处理和对话框,但我坚持简单地将行进方向更改为新向量

在一个简单的例子中,我有一个矩形向上移动屏幕,如下所示:

obj1 = display.newRect(500, 800, 10, 40)
transition.to(obj1,{x=500, y = 100, time = 40000})

我知道我可以通过调整时间来改变速度,但如果我使用

obj1:rotate(30)

将物体旋转 30 度,我如何让它向新的方向移动?

我应该使用物理 - 例如线性脉冲,而不是过渡?

抱歉,如果这是一个愚蠢的问题,但我一直在寻找解决方案但没有成功。

4

1 回答 1

1

这听起来像你正在尝试做的事情。您必须修改位以适合您的代码,但这是一个工作示例。所以如果你将它复制到一个新的 main.lua 文件并运行它,你可以看到它是如何工作的。(单击以旋转 obj)。

local obj = display.newRect(50,50, 10, 40)
local SPEED = 1
local function move(event)

    obj.x = obj.x + math.cos(math.rad(obj.rotation)) * SPEED
    obj.y = obj.y + math.sin(math.rad(obj.rotation)) * SPEED

end

local function rotate(event)
    obj.rotation = obj.rotation + 45
end

Runtime:addEventListener("enterFrame", move)
Runtime:addEventListener("tap", rotate)

基本上,我使用“enterFrame”事件来“移动”矩形,方法是使用每帧的旋转(很容易修改)重新计算对象位置的 x 和 y。

于 2013-03-05T16:26:19.730 回答