【Defold】基本的なアニメーション再生について

Defold, DEVELOP

Defold では初めから Easing 系の API が用意されているためアニメーションが簡単に実装できます。

go.animate(url, property, playback, to, easing, duration, complete_function)

引数の意味

urlオブジェクトへのパス
property更新対象のパラメータ
playback繰り返しの形式
toアニメーションのゴール先
durationゴール先までにかける時間
easingイージングタイプ
complete_function処理終了時の呼ばれるコールバック関数を登録

サンプルコード

-- 初期化
function init(self)
    -- 入力を受け付ける
    msg.post(".", "acquire_input_focus")
    -- 移動中フラグ
    self.moving = false	
end
-- 移動完了時に呼ばれるコールバック
local function move_end(self) 
    -- 移動中フラグを折る
    self.moving = false 
end
-- 入力
function on_input(self, action_id, action)
    -- タッチ時
    if action_id == hash("touch") and action.pressed then
        if not self.moving then 
            self.moving = true 
            -- タッチ座標の取得
            pos = vmath.vector3(action.x, action.y, 0) 
            -- イージング移動
            go.animate(".", "position", go.PLAYBACK_ONCE_FORWARD, pos, go.EASING_OUTQUART, 0.5, 0, move_end) 
            end 
        end
end

もう少し使いやすく

標準の animate をラップして扱いやすくしたdeftween を公開しています。よろしければこちらの投稿もどうぞ!

【Defold】EasingアニメーションをSequenceを繋いで書ける様にする「deftween」 | KAZUPON

Posted by kazupon