2013-03-23 164 views
0

我正在做一個塔防遊戲,我有一個3D角色它已經呈現的精靈。我有一個問題,我無法弄清楚如何解決。CoronaSDK旋轉3d精靈

Image

我需要以平穩地旋轉精靈去面對它在在激發敵人。目前它獲得了炮塔與敵人之間的角度,併爲該角度設置了精靈,所以如果角度爲140度,我會玩140度射擊。問題在於它會直接跳到這個角度,所以如果最後一個炮塔發射的角度是270度而下一個敵人的角度是120度,它將直接跳到那個角度。

任何想法如何我可以旋轉炮塔每5度之間的最後播放序列和下一個角度的序列之前塔開始射擊?所以最後玩的是270我需要去140,所以我會玩的幀爲265,260,255 ....... 150,145,140

回答

1
current_angle = 270 

-- when new target appears 
local target_angle = 140 
local delta = (target_angle - current_angle + 180) % 360 - 180 
-- Now: -180 <= delta < 180 
step = delta < 0 and -5 or 5 
number_of_steps = delta/step 
ready_to_fire = false 

-- inside "draw" function 
ready_to_fire = number_of_steps == 0 
if not ready_to_fire then 
    current_angle = (current_angle + step) % 360 
    number_of_steps = number_of_steps - 1 
    -- draw frame for "current_angle" 
end