原点を指定する
Posted 2013.01.19 in 流動指向ゲームエンジン『Fooo』
これまでFoooの動作サンプルを見てきて、
拡大や回転の動きがちょっと変だなと思わなかっただろうか。
よく見ればデーカーの拡大や回転が、画像の左上を基準に行われているのがわかるだろう。
バグか!? バグなのか!?
いやいやバグではない。
左上が基準になっていたのは、デーカーの『原点』の位置が
画像の左上の位置(0,0)になっていたからだ。
『原点』とはデーカーの姿勢(配置、拡大、回転)の基準として使われる点のことである。
原点はデーカー内の座標として設定される。
ox, oyパラメータ
原点位置はデーカーの作成時にox, oyパラメータで指定することができる。
oxは原点の横方向の位置、oyは原点の縦方向の位置を指定するパラメータだ。
(ちなみにox, oyという名前は、origin x, origin yの略)
回転拡大を画像の中心を基準に行わせるには、
ox, oyパラメータに画像の中心座標を指定すればよい。
ではさっそく原点位置を画像の中心にしてみよう。
“画像.png”のサイズは400×600ピクセルなので中心座標は(200,300)だ。
method Main()
{
CreateImage(name="画像", image="画像.png", x=640, y=360
, ox=200, oy=300);
Enter(to="画像");
Zoom(to="画像", time=1000, sx=200%, sy=200%);
Rotate(to="画像", time=1000, angle=45);
}
実行してみよう。
画像の中心を基準に拡大、回転するようになった!
なお、原点位置を変えると見た目上の位置が変わってしまうので注意が必要だ。
ここではx, yパラメータに画面の中央位置を指定している。
デーカーの原点も中央位置なので、画面の中央に配置されたデーカーが
自身の中心を基準に拡大回転するという動きになっている…というわけだ。