【Defold】基本的なアニメーション再生について
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