※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

 「新年明けましておめでとうございます。
新たな年の番外講座第一弾はパネルの座標についてです。
皆さんは、パネルでオブジェクトを描写するとき($panel.drawSprite(x,y,p,f)
のx座標に$viewX+$screenWidthとか、y座標に$viewY+$screenHeightとか書いて意味不明な動作をされて怒りに震えた経験はありませんか?(スクロールするゲームでは通常位置を固定するためにこうやって書く)

これは、全てパネルというものの性質によるものなんです。
ちなみに要点から言いますと、パネルというものの座標を指定するときには$viewXとか$viewYはいりません
単純に$screenWidthに$screenHeighと書けばいいです。

さて、なぜなのか。
ただのオブジェクトを描写するときにはあれほどに悩みぬいた末に獲得した(私だけ?^^;)このスクロール対策の魔法の呪文、$viewX&$viewYが必要ないどころか、むしろ邪魔モノと化すのか!?
それはパネルオブジェクトを表示するときにはパネルと呼ばれる透明な黒板に描かれるからです。

では、どういうことなのか?


う~ん、カラフルー♪♪
ようするにこういうことです。
パネルのオブジェクトの中心はこのパネルの範囲なのです。
パネルでオブジェクトを描写するときには画面の座標も表示元のオブジェクトの座標も関係ありません。パネルの範囲における座標こそが全てなのです。
なわけで、$viewXだの$viewYだのなんて書いちゃったらとんでもない間違いです。
パネルにとっちゃ「知るかボケが」というところ。無駄に大きな数字を渡してしまって意味不明な動作をされてしまうだけです。

てなわけで、パネルでオブジェクトを描写するときには常に画面のどの位置に表示されるかだけを考えて数字を打ち込めばいいわけでいたってお気楽ですね♪

ちなみに、パネルは黒板です。
一つのパネルには一つのことしか描くことができませんので、線をぐちゃぐちゃに描いた上から黒板消しで消したら当然全ての線を消してまっさらにしてしまいます。
重ね書きをすると先に書いたものはきれさっぱり消えて痕も残りません。
んなわけで、複数のパネルを使いたいときにはパネルオブジェクトを使いましょう。動作速度については保障できませんが…^^; 別々のパネルならばそれぞれのパネルで独立した黒板となるので、一度に全部消されてしまうようなことはありません。