【Defold】背景のスプライトをスクロールする

2019/07/10Defold, DEVELOP

背景の無限スクロールしてみます。

そもそも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です。座標がずれていると見切れていたり、見た目が壊れています。

Posted by kazupon