2013-03-23 2 views
0

나는 타워 방어 게임을 만들고 있으며, 스프라이트가 렌더링 된 각도로 3D의 종류가 있습니다. 해결 방법을 찾을 수 없다는 문제가 있습니다.CoronaSDK 3D 스프 라이트 회전

Image

나는 그것을에서 발사되어 적을 얼굴을 부드럽게 스프라이트를 회전해야합니다. 현재 포대와 적 사이의 각도를 얻고 그 각도로 스프라이트를 설정합니다. 따라서 각도가 140 도인 경우 140도 점화 순서를 재생합니다. 이 문제는 바로 그 각도로 점프합니다. 터렛이 터지게 된 마지막 위치가 270도이고 다음 적의 각도가 120 도로되면 곧바로 그 각도로 점프합니다.

타워가 점화되기 전에 마지막으로 재생 된 순서와 다음 각도의 순서 사이에서 5도마다 터렛을 회전시킬 수있는 아이디어는 무엇입니까? 마지막으로 재생 한 270은 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