tmlibの練習ブログ

自分流にtmlibを触っていきます。分かったことを解説。入門用になれば…?

デフォルトから一本のゲームを完成させる6.背景の表示、画像の表示基準位置

今回から流れる(自動スクロール)する背景、というのを作ってみたいと思う。


まず ASSETS に BACK という画像を登録しよう。
画像の大きさは画面に合わせる(SCREEN_WIDTHとSCREEN_HEIGH、つまり横640 * 縦480)


f:id:superchineseland:20131130182731p:plain
(道路の背景を描いてみた。)


背景表示といっても、基本は四角や.starと同じだ。

//背景
this.back = tm.app.Sprite("BACK");
this.addChild(this.back);    // シーンに追加
// 今までのシーン追加分
this.rect = tm.app.RectangleShape(64,64);
//...省略


こんな感じで追加する。
ただし背景というからには、重なった時に一番下に表示されないといけない。
this.addChild( )は追加した順に表示するようなので、一番初めに追加するのがいいだろう。


f:id:superchineseland:20131130182743j:plain


しかしこのままでは、なんだか半分しか表示されていない。


Sprite は座標を指定しないと、x,y ともに 0,0 の状態からスタートする。
そして、画像は画面の大きさと同じだ。
…ならピッタリと表示されるハズではないのか?(と、自分は不思議だった…)


f:id:superchineseland:20131130182754p:plain


実は Sprite には"どこを基準にして表示するか"という値があって、初期状態のままだと、それは"画像の中心"となっている。
早い話このままだと、x,y の値は画像の中心を意味している。
それで xが0 , yが0だと、そこに"画像の中心"が来るから、半分だけチラッと見える、という訳だ。


もちろん座標を画像の半分だけずらす… xを320、yを240としてもいいのだが、
せっかくなので次回は"基準の値"をいじり、流れる背景を作ってみる。


次回:デフォルトから一本のゲームを完成させる7.背景ぴったり表示、流れるように - tmlibの練習ブログ