【Defold】背景のスプライトをスクロールする
背景の無限スクロールしてみます。
そもそもDefold Engineって何?という方はこちら。
目次
GameObjectの作成
Assetsビューで右クリック->[New…]->[Game Object]を選択します。名前はbackground.goとします。
background.goの中身は
- スクロール用の背景スプライトを縦に2枚並べる
- 背景をスクロールさせるためのBackGroundControllerスクリプトを作成し割り当てる
この様にしました。スプライトはアトラス化することも忘れずに行いましょう。
スクリプト
function init(self)
-- スクロール速度
self.velocity = vmath.vector3(0, -80, 0)
-- スプライトサイズの取得
self.size = go.get("#sprite", "size")
end
function update(self, dt)
local pos = go.get_position()
pos = pos + self.velocity * dt
go.set_position(pos)
if pos.y < -self.size.y then
go.set_position(vmath.vector3())
end
end
シンプルな実装にしました。1スプライトサイズ分、背景のスクロールが完了した時に座標をリセットしています。スクリプトがかけたら、background.go オブジェクトをシーンに配置します。
スプライト間の境界線が見えない様になっていればOKです。座標がずれていると見切れていたり、見た目が壊れています。