在电晕中改变移动物体的行进方向

时间:2013-03-05 12:26:29

标签: lua corona

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

基本上我想要一个设置,当我点击一个移动的物体时,会弹出一个对话框,让我可以选择改变物体的速度和行程的矢量。我很确定我可以弄清楚事件处理和对话但是我只是简单地改变了向新矢量的旅行方向

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

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

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

obj1:rotate(30)

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

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

道歉,如果这是一个愚蠢的问题,但我没有成功搜索解决方案。

1 个答案:

答案 0 :(得分: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。