class Sprite
Description
描画位置、描画パラメータ、画像データを保持し、自分自身を描画する機能を持つ描画プリミティブクラスです。
Sprite導入以前は位置やパラメータ、画像を別々に持ってWindow.draw系メソッドで描画していましたが、Spriteオブジェクトでまとめて管理することができます。
衝突判定機能では点・矩形・円・三角形の形状を自由に組み合わせて衝突判定を作ることができ、描画エフェクトの回転やスケーリングと連動して変形しますので、画像の見た目と一致した衝突判定を行うことができます。
かなり複雑な衝突判定処理ですが、C言語で実装されているため非常に高速です。
基本的にはSpriteクラスを継承してSprite#updateを定義して使いますが、Spriteオブジェクトを直接生成して使っても便利に使えます。
各種パラメータはSetter/Getterが定義されており容易にアクセスすることができますが、インスタンス変数として定義されてはいません。
従ってSpriteを継承したクラス内でもself.xという形でアクセスする必要があります。
selfを省略するとローカル変数への代入とみなされるなどしてバグの原因になりますので、できるだけselfを付けてください。
この仕様は多少面倒ですが、Spriteを継承したユーザ定義のクラスでインスタンス変数に制限が無いというメリットもあります。
Spriteクラスを活用することでゲームのキャラ等を扱う等、DXRubyのゲームプログラミングは一段とラクになるでしょう。
具体的な使い方はチュートリアルを参照してください。
Class Methods
- new
- Spriteオブジェクトを生成します。x/y/imageはそれぞれ座標と画像データです。
- check
- 衝突判定を行います。
- update
- 配列内のすべてのオブジェクトのupdateメソッドを呼び出します。
- draw
- 配列内のすべてのオブジェクトのdrawメソッドを呼び出します。
- clean
- 配列内のすべてのオブジェクトのvanished?メソッドを呼び出し、trueが返ってきた要素と、もともとnilだった要素を削除します。
Instance Methods
- draw
- selfを描画します。
- ===
- 渡されたspriteとselfの衝突チェックを行い、衝突している場合に真を返します。
- check
- 衝突しているSpriteオブジェクトの配列を返します。
- x
- X座標を返します。
- x=
- X座標を変更します。
- y
- Y座標を返します。
- y=
- Y座標を変更します。
- z
- 描画順序を返します。
- z=
- 描画順序。小さいほど奥になり、同じ値の場合は最初にdrawしたものが一番奥になります。
- angle
- 描画時の回転角度を返します。
- angle=
- 描画時の回転角度を変更します。
- scale_x
- 描画時のX軸方向の拡大率を返します。
- scale_x=
- 描画時のX軸方向の拡大率を変更します。
- scale_y
- 描画時のY軸方向の拡大率を返します。
- scale_y=
- 描画時のY軸方向の拡大率を変更します。
- center_x
- 描画時の画像の拡大、回転中心とするX座標を返します。
- center_x=
- 描画時の画像の拡大、回転中心とするX座標を変更します。
- center_y
- 描画時の画像の拡大、回転中心とするY座標を返します。
- center_y=
- 描画時の画像の拡大、回転中心とするY座標を変更します。
- alpha
- 描画時のアルファ値を返します。
- alpha=
- 描画時のアルファ値を変更します。
- blend
- 描画時の合成方法を返します。
- blend=
- 描画時の合成方法を変更します。
- shader
- 描画時に適用するShaderオブジェクトを返します。
- shader=
- 描画時に適用するShaderオブジェクトを変更します。
- image
- Sprite#drawで描画される画像を返します。
- image=
- Sprite#drawで描画される画像を変更します。
- target
- Sprite#drawで描画する先を返します。
- target=
- Sprite#drawで描画する先をスクリーンではなくRenderTargetオブジェクトにする場合に指定します。
- collision
- 衝突判定範囲を返します。
- collision=
- 衝突判定範囲を設定します。
- collision_enable
- 衝突判定が有効である場合に真を返します。
- collision_enable=
- 衝突判定の有効、無効を変更します。
- collision_sync
- 衝突判定範囲に回転/スケーリングを加味する場合に真を返します。
- collision_sync=
- 衝突判定範囲に回転/スケーリングを加味するかを変更します。
- visible
- Sprite#drawにおいて実際に描画するか場合に真を返します。
- visible=
- Sprite#drawにおいて実際に描画するかを変更します。
- vanish
- vanishメソッドはSpriteを無効化します。
- vanished?
- Sprite#vanishによって無効化されている場合に真を返します。
- param_hash
- Window.draw_exに渡すことのできるHashオブジェクトを返します。
- offset_sync
- オフセット同期モードである場合に真を返します。
- offset_sync=
- オフセット同期モードにするかを変更します。