com.nttdocomo.ui
クラス SpriteSet

Object
  |
  +--com.nttdocomo.ui.SpriteSet

public class SpriteSet
extends Object

複数のスプライトを保持して管理するクラスを定義します。 スプライトの表示や衝突判定を行うために使用します。

スプライトを表示するには、 スプライトオブジェクトをスプライトセットオブジェクトに設定してから、 スプライトセットオブジェクトを引数に指定して Graphics.drawSpriteSet(SpriteSet) メソッドを呼び出します。
可視でないスプライトや dispose されたイメージオブジェクトを持つスプライトは描画の対象になりません。

スプライトの衝突判定では、 スプライトセットが管理しているスプライト同士が重なっているかどうかをチェックします。 この時、重なっているかどうかのチェックは、 スプライトが持つイメージの矩形で行われます。 スプライトの反転表示の設定2 次元の線形変換の設定の設定は反映されません。
可視でないスプライトや dispose されたイメージオブジェクトを持つスプライトは衝突判定の対象になりません。 同じスプライト同士の衝突判定を行った場合は、 常に衝突していないものとして結果が返されます。

導入されたバージョン:
DoJa-3.5
関連項目:
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
 

コンストラクタの詳細

SpriteSet

public SpriteSet(Sprite[] sprites)

スプライトオブジェクトの配列を指定してスプライトセットを生成します。 スプライトは、 配列のインデックス値が大きいほど優先順位が高くなります(すなわち、手前に表示されます)。 スプライトオブジェクトの配列は、 引数で渡された配列の参照をスプライトセットオブジェクトが保持します。 したがって、引数で渡された配列の要素を変更するとスプライトも変更されます。

スプライトオブジェクトの配列の要素が null の場合、 そのスプライトは描画や衝突判定の対象となりません。

デフォルトでは衝突判定フラグは全て 0 に初期化されます。

パラメータ:
sprites - スプライトオブジェクトの配列を指定します。
例外:
NullPointerException - 引数 sprites に null が指定された場合に発生します。
IllegalArgumentException - 引数 sprites の要素数が 0 の場合や要素数が 32 より大きい場合に発生します。
メソッドの詳細

getSprites

public Sprite[] getSprites()
スプライトオブジェクトの配列を取得します。

戻り値:
スプライトオブジェクトの配列を返します。

getCount

public int getCount()

スプライトの数を取得します。
getSprites().length と同じ値を返します。

戻り値:
スプライトの数を返します。

getSprite

public Sprite getSprite(int index)

インデックスを指定してスプライトオブジェクトを取得します。
getSprites()[index] と同じ値を返します。

パラメータ:
index - 取得するスプライトオブジェクトのインデックスを指定します。
戻り値:
指定されたインデックスのスプライトオブジェクトを返します。
例外:
ArrayIndexOutOfBoundsException - 引数 index に負の値またはスプライトの個数以上の値が指定された場合に発生します。

setCollisionAll

public void setCollisionAll()

すべてのスプライトの相互衝突判定を行います。 すべてのスプライトに対して setCollisionOf(int) メソッドを呼び出したのと同じです。

判定結果のフラグは getCollisionFlag(int) メソッドで取り出します。


setCollisionOf

public void setCollisionOf(int index)

一個のスプライトの相互衝突判定を行います。 指定されたインデックスのスプライトが他のスプライトと衝突しているかどうかをチェックして、 判定結果のフラグを保持します。 判定結果のフラグは引数で指定されたインデックスのスプライトのもののみが更新され、 再度 setCollisionAll() メソッドが呼ばれるか、 同じインデックスを指定してこのメソッドが呼ばれるまで変更されません。
スプライトオブジェクトの配列の要素が null のものや、可視でないスプライト、dispose されたイメージオブジェクトを持つスプライトは衝突判定の対象になりません。 その場合の判定結果は、衝突していないものとなります。

判定結果のフラグは getCollisionFlag(int) メソッドで取り出します。

パラメータ:
index - 衝突判定を行うスプライトのインデックスを指定します。
例外:
ArrayIndexOutOfBoundsException - 引数 index に負の値またはスプライトの個数以上の値が指定された場合に発生します。

isCollision

public boolean isCollision(int index1,
                           int index2)

二個のスプライトの衝突判定フラグを取得します。 setCollisionAll() メソッドおよび setCollisionOf(int) メソッドによって設定された相互衝突判定の結果のフラグから、 引数で指定された二個のスプライトが衝突しているかどうかをチェックして返します。
getCollisionFlag(index1) & (1 << index2) の値が非 0 であれば true を、0 であれば false を返します。

パラメータ:
index1 - 衝突判定を行うスプライトのインデックスを指定します。
index2 - 衝突判定を行うスプライトのインデックスを指定します。
戻り値:
スプライトが衝突している場合は true を、 衝突していない場合は false を返します。 ただし、同じスプライトが指定された場合は false を返します。
例外:
ArrayIndexOutOfBoundsException - 引数 index に負の値またはスプライトの個数以上の値が指定された場合に発生します。

getCollisionFlag

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.の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。