2012年05月24日
Sprite について
今回は、スプライト機能についてご紹介します。
通常、Canvas に描画をする際は、Image で画像を貼り付けたり、
Graphics で線などを描いたりしますが、
キャラクタものについては、Sprite を使用します。
昔懐かしい、8ビットの MSX から存在していた機能ですが、
MSX のころは、完全にグラフィックと分離していました。
画面をクリアしても、スプライトはしぶとく残っているような状態だったのですが、
DoJa では、Canvas に上書きする要素として定義されているようで、
Graphics.clearRect などで画面クリアすると、一緒に消えてしまうようです。
そうすると、何もメリットが内容に思えますが、
Sprite は、描画する際には SpriteSet として書き込みます。
つまり、Sprite をまとめて描画するわけです。
そして、Sprite どうしで重なっているのかどうかを判定して返してくれる機能があります。
これで、たとえばシューティングゲームの障害物接触判定などに使えるわけです。
Sprite を定義する際には、Image が必要です。
画像を入れておくか、createImage で領域を決めておいて
Graphics で描画するかですね。
// 画像を適当に定義します。
Image i = Image.createImage(10, 10);
// Sprite を作成します。
Sprite s = new Sprite(i);
// もうひとつ、Sprite を作成します。
Sprite s2 = new Sprite(Image.createImage(1, 1));
// SpriteSet を作成します。
SpriteSet sst = new SpriteSet(new Sprite[]{s, s2});
//Graphics(g とします) に描画します。
g.drawSpriteSet(ss);
通常、Canvas に描画をする際は、Image で画像を貼り付けたり、
Graphics で線などを描いたりしますが、
キャラクタものについては、Sprite を使用します。
昔懐かしい、8ビットの MSX から存在していた機能ですが、
MSX のころは、完全にグラフィックと分離していました。
画面をクリアしても、スプライトはしぶとく残っているような状態だったのですが、
DoJa では、Canvas に上書きする要素として定義されているようで、
Graphics.clearRect などで画面クリアすると、一緒に消えてしまうようです。
そうすると、何もメリットが内容に思えますが、
Sprite は、描画する際には SpriteSet として書き込みます。
つまり、Sprite をまとめて描画するわけです。
そして、Sprite どうしで重なっているのかどうかを判定して返してくれる機能があります。
これで、たとえばシューティングゲームの障害物接触判定などに使えるわけです。
Sprite を定義する際には、Image が必要です。
画像を入れておくか、createImage で領域を決めておいて
Graphics で描画するかですね。
// 画像を適当に定義します。
Image i = Image.createImage(10, 10);
// Sprite を作成します。
Sprite s = new Sprite(i);
// もうひとつ、Sprite を作成します。
Sprite s2 = new Sprite(Image.createImage(1, 1));
// SpriteSet を作成します。
SpriteSet sst = new SpriteSet(new Sprite[]{s, s2});
//Graphics(g とします) に描画します。
g.drawSpriteSet(ss);
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image