2013-03-05 73 views
0

我是新來的Corona和尋求一點幫助操縱移動的物體:改變移動物體行進方向電暈

基本上我想有一個設置在那裏的時候,我可以點擊一個移動的物體上,一個對話框盒子會彈出,讓我可以選擇改變物體的速度和旅行向量。我很確定我能弄清楚事件處理和對話框,但我堅持簡單地改變旅行的方向到一個簡單的例子,我有一個矩形在屏幕上移動,如下圖所示:

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

我知道我可以通過調整時間而變化的速度,但如果我用

obj1:rotate(30) 

打開對象30度,我怎麼讓它在新的方向行進?

我應該使用物理 - 例如線性衝動,而不是過渡?

道歉,如果這是一個愚蠢的問題,但我已經搜索沒有成功的解決方案。

回答

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。

+0

非常感謝ck1221!這正是我所期待的。我知道這很簡單,但它將構成我即將開始的項目的整個基礎。 – user2135649 2013-03-05 18:10:44