|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Objectcom.nttdocomo.ui.SpriteSet
複数のスプライトを保持して管理するクラスを定義します。
スプライトの表示や衝突判定を行うために使用します。
スプライトを表示するには、
スプライトオブジェクトをスプライトセットオブジェクトに設定してから、
スプライトセットオブジェクトを引数に指定して
スプライトの衝突判定では、
スプライトセットが管理しているスプライト同士が重なっているかどうかをチェックします。
この時、重なっているかどうかのチェックは、
スプライトが持つイメージの矩形で行われます。
スプライトのGraphics.drawSpriteSet(SpriteSet)
メソッドを呼び出します。
可視でないスプライトや dispose されたイメージオブジェクトを持つスプライトは描画の対象になりません。
反転表示の設定
や2 次元の線形変換の設定
の設定は反映されません。
可視でないスプライトや dispose されたイメージオブジェクトを持つスプライトは衝突判定の対象になりません。
同じスプライト同士の衝突判定を行った場合は、
常に衝突していないものとして結果が返されます。
Sprite
,
Graphics.drawSpriteSet(SpriteSet)
コンストラクタの概要 | |
SpriteSet(Sprite[] sprites)
スプライトオブジェクトの配列を指定してスプライトセットを生成します。 |
メソッドの概要 | |
int |
getCollisionFlag(int index)
一個のスプライトの相互衝突判定フラグを取得します。 |
int |
getCount()
スプライトの数を取得します。 |
Sprite |
getSprite(int index)
インデックスを指定してスプライトオブジェクトを取得します。 |
Sprite[] |
getSprites()
スプライトオブジェクトの配列を取得します。 |
boolean |
isCollision(int index1,
int index2)
二個のスプライトの衝突判定フラグを取得します。 |
void |
setCollisionAll()
すべてのスプライトの相互衝突判定を行います。 |
void |
setCollisionOf(int index)
一個のスプライトの相互衝突判定を行います。 |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public SpriteSet(Sprite[] sprites)
スプライトオブジェクトの配列を指定してスプライトセットを生成します。 スプライトは、 配列のインデックス値が大きいほど優先順位が高くなります(すなわち、手前に表示されます)。 スプライトオブジェクトの配列は、 引数で渡された配列の参照をスプライトセットオブジェクトが保持します。 したがって、引数で渡された配列の要素を変更するとスプライトも変更されます。
スプライトオブジェクトの配列の要素が null の場合、 そのスプライトは描画や衝突判定の対象となりません。
デフォルトでは衝突判定フラグは全て 0 に初期化されます。
sprites
- スプライトオブジェクトの配列を指定します。
NullPointerException
-
引数 sprites に null が指定された場合に発生します。
IllegalArgumentException
-
引数 sprites の要素数が 0 の場合や要素数が 32 より大きい場合に発生します。
メソッドの詳細 |
public Sprite[] getSprites()
public int getCount()
スプライトの数を取得します。
と同じ値を返します。
getSprites()
.length
public Sprite getSprite(int index)
インデックスを指定してスプライトオブジェクトを取得します。
と同じ値を返します。
getSprites()
[index]
index
- 取得するスプライトオブジェクトのインデックスを指定します。
ArrayIndexOutOfBoundsException
-
引数 index に負の値またはスプライトの個数以上の値が指定された場合に発生します。
public void setCollisionAll()
すべてのスプライトの相互衝突判定を行います。
すべてのスプライトに対して setCollisionOf(int)
メソッドを呼び出したのと同じです。
判定結果のフラグは getCollisionFlag(int)
メソッドで取り出します。
public void setCollisionOf(int index)
一個のスプライトの相互衝突判定を行います。
指定されたインデックスのスプライトが他のスプライトと衝突しているかどうかをチェックして、
判定結果のフラグを保持します。
判定結果のフラグは引数で指定されたインデックスのスプライトのもののみが更新され、
再度 setCollisionAll()
メソッドが呼ばれるか、
同じインデックスを指定してこのメソッドが呼ばれるまで変更されません。
スプライトオブジェクトの配列の要素が null のものや、可視でないスプライト、dispose されたイメージオブジェクトを持つスプライトは衝突判定の対象になりません。
その場合の判定結果は、衝突していないものとなります。
判定結果のフラグは getCollisionFlag(int)
メソッドで取り出します。
index
- 衝突判定を行うスプライトのインデックスを指定します。
ArrayIndexOutOfBoundsException
-
引数 index に負の値またはスプライトの個数以上の値が指定された場合に発生します。
public boolean isCollision(int index1, int index2)
二個のスプライトの衝突判定フラグを取得します。
setCollisionAll()
メソッドおよび setCollisionOf(int)
メソッドによって設定された相互衝突判定の結果のフラグから、
引数で指定された二個のスプライトが衝突しているかどうかをチェックして返します。
の値が非 0 であれば true を、0 であれば false を返します。
getCollisionFlag(index1)
& (1 << index2)
index1
- 衝突判定を行うスプライトのインデックスを指定します。index2
- 衝突判定を行うスプライトのインデックスを指定します。
ArrayIndexOutOfBoundsException
-
引数 index に負の値またはスプライトの個数以上の値が指定された場合に発生します。
public int getCollisionFlag(int index)
一個のスプライトの相互衝突判定フラグを取得します。
setCollisionAll()
メソッドおよび setCollisionOf(int)
メソッドによって設定された相互衝突判定の結果のフラグから、
引数で指定されたスプライトのフラグを取り出して返します。
衝突判定フラグの n 番目のビット(1 << n)が 1 であればインデックス値が n のスプライトと衝突していることを、 ビットが 0 であれば衝突していないことを表します。
index
- 相互衝突判定フラグを取得するスプライトのインデックスを指定します。
ArrayIndexOutOfBoundsException
-
引数 index に負の値またはスプライトの個数以上の値が指定された場合に発生します。
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
NTT DOCOMO,INC.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。
その他記載された会社名、製品名などは該当する各社の商標または登録商標です。