【问题标题】:CoronaSDK rotating 3d spriteCoronaSDK 旋转 3d 精灵
【发布时间】:2013-03-13 12:35:46
【问题描述】:

我正在制作一个塔防游戏,我有一个在渲染角度上是 3D 的精灵。我有一个我不知道如何解决的问题。

我需要平滑地旋转精灵以面对它正在射击的敌人。目前它获取炮塔和敌人之间的角度并为该角度设置精灵,所以如果角度为 140 度,我将播放 140 度射击序列。这样做的问题是它会直接跳到那个角度,所以如果炮塔发射的最后一个位置是 270 度,而下一个敌人是 120 度,它会直接跳到那个角度。

任何想法如何在最后播放序列和塔开始射击之前的下一个角度序列之间每 5 度旋转炮塔?所以最后播放的是 270,我需要转到 140,所以我会播放 265、260、255.......150、145、140 的帧

【问题讨论】:

    标签: lua coronasdk


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多