Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

javax.microedition.lcdui.game
クラス Sprite

java.lang.Object
  上位を拡張 javax.microedition.lcdui.game.Layer
      上位を拡張 javax.microedition.lcdui.game.Sprite

public class Sprite
extends Layer

SpriteImage に保存されたいくつかのフレームの1つをレンダリングできる基本的な視覚要素です; Sprite をアニメーションするために異なったフレームを見せることができます。 また、さらに外観を変えるために反転や回転などのいくつかの変形を Sprite に適用できます。 全ての Layer サブクラスがそうであるように、Sprite は位置を変えることができ、そしてまた、それを可視状態および不可視状態にすることができます。

スプライト・フレーム

Sprite をレンダリングするために使用する生フレームを単一の Image オブジェクトから供給します。それは不変モードでも可変モードでもかまいません。 1個以上のフレームが使用されるなら、Image は指定された幅と高さの一連の等しいサイズのフレームに分割されます。 以下の図形に示すように、ゲーム開発者が最も都合がよいように、同じセットのフレームはいくつかの異なった整理をされて保存することができます。

Sprite Frames

各フレームには固有のインデックス番号が割り当てられます。 インデックス 0Image の左上角に位置するフレームに割り当てられます。 そのとき、行を優先して連続した残りのフレームに付番します(インデックス・リストは最初の列から横断して割り当てられ、続いて2列目など)。 getRawFrameCount() メソッドは生フレームの総数を返します。

フレーム・シーケンス

Sprite のフレーム・シーケンスは、表示するためにフレームに関する順序付きリストを定義します。 デフォルトのフレーム・シーケンスは利用可能なフレームのリストを反映するため、シーケンスインデックスと対応するフレームインデックスの間にはダイレクト・マッピング(直接割り当て)が行われます。 これはまた、デフォルトのフレーム・シーケンスの長さは生フレームの数と等しいことを意味します。 例えば、Sprite に4個のフレームがあるなら、デフォルトのフレーム・シーケンスは { 0, 1, 2, 3 } です。

Default Frame Sequence

開発者は手動でフレーム・シーケンスの現在のフレームを切り替えなければなりません。 これらのメソッドが常に配列内への参照位置を操作し、フレーム・インデックス・リストは操作しないことに注意してください。 しかし、デフォルトのフレーム・シーケンスが使用されているなら、シーケンス・インデックス・リストとフレーム・インデックス・リストは交換可能です。

望むなら、任意のフレーム・シーケンスを Sprite のために定義することができます。 フレーム・シーケンスは少なくとも1つの要素を含まなければなりません。そして、各要素は有効なフレームインデックスへの参照を含まなければなりません。 新しいフレーム・シーケンスを定義することにより、開発者は希望した任意の順番で Sprite のフレームを表示することができます; フレームは、繰り返し、省略、逆順などで表示されるかもしれません。

例として、以下の図は専用のフレーム・シーケンスが蚊をアニメーションさせるためにどのように使用されるかを示します。 フレーム・シーケンスは、蚊が翼を3回ばたつかせて、サイクルが繰り返される前に一瞬止まるように設計してあります。

ディスプレイの更新後に各回 nextFrame() を呼び出すことによって、結果として起こるアニメーションは次のようになるでしょう:

参照ピクセル

SpriteLayer のサブクラスであり、setPosition(x, y)getX() および getY() などの位置を設定および取得するための様々なメソッドを引き継ぎます。 これらのメソッドはすべて、Sprite の視覚領域の左上角に対する位置を定義します。 しかし、いくつかの場合はフレームの中の任意のピクセルに対して Sprite の位置を定義するのは(特に変形を Sprite に適用するなら)利便性を向上させます。

このため、Sprite参照ピクセルの概念を含みます。 参照ピクセルは、SpritedefineReferencePixel(x, y) を使用して、変形されていないフレームの位置を指定することによって定義します。 デフォルトで、参照ピクセルはフレームの位置になるように定義されます。 望むのであれば、参照ピクセルはフレームの境界の外を定義することもできます。

この例では、参照ピクセルはサルがぶら下がっているように見えるように定義します:

描画座標系から参照ピクセルの位置を問い合わせるのには getRefPixelX()getRefPixelY() を使用します。 また、開発者が Sprite を置くために setRefPixelPosition(x, y) を使用することができ、その参照ピクセルは描画座標系の特定の位置に載ります。 これらのメソッドは自動的に Sprite に適用された全ての変形を考慮します。

この例では、参照ピクセルの位置は木の枝の先の位置に設定されます; Sprite 位置が変化すると、参照ピクセルはここに現れます。そして、サルは枝からぶら下がっているように見えます:

スプライト変形

様々な変形を Sprite に適用することができます。 利用可能な変形は複数の90度単位回転および(縦軸に関する)反転を各回転に適用することができます。 Sprite の変形は setTransform(transform) の呼び出すことによって設定します。

変形が適用されていると、Sprite は自動的に位置が変更となり、参照ピクセルは描画座標系で静止しているように見えます。 したがって、事実上参照ピクセルは変形操作の中心となります。 参照ピクセルは移動しないため、getRefPixelX()getRefPixelY() が返す値は変更されません; しかし、Layer.getX()Layer.getY() が返す値は、Sprite の左上角の動きを反映するように必要に応じて変化します。

もう一度猿の例で示すと、90度の回転を適用すると参照ピクセルは位置 (242, 163) に残存しており、その結果、まるでサルが枝から揺れ動いているかのように見せることができます:

スプライト描画

いつでも paint(Graphics) メソッドを使用することで Spirte 群の描画を行うことができます。 Sprite によって保持されている現状情報(すなわち、位置、フレーム、可視・不可視)に応じて、SpriteGraphics オブジェクトで描かれます。 Sprite を消去するのは、常に Sprite クラスの外のコードの責任です。

メーカーが採用を検討しているどのようなテクニックも Sprite を実装するために使用することができます(例えば、ハードウェア・アクセラレーションを全ての Sprite のために、あるサイズの Sprite のために、あるいはまったく用いない)。

いくつかのプラットフォームにおいては、あるサイズの Sprite は他のものよりも効率的であるかもしれません。 メーカーはこれらのデバイス特有の特性に関する情報を開発者に提供することを選択することができます。

導入されたバージョン:
MIDP 2.0

フィールドの概要
static int TRANS_MIRROR
          Spirte が垂直中央において折り返して見えるようにすることを示します。
static int TRANS_MIRROR_ROT180
          Spirte が垂直中央において折り返し、さらに時計回りに180度回転して見えるようにすることを示します。
static int TRANS_MIRROR_ROT270
          Spirte が垂直中央において折り返し、さらに時計回りに270度回転して見えるようにすることを示します。
static int TRANS_MIRROR_ROT90
          Spirte が垂直中央において折り返し、さらに時計回りに90度回転して見えるようにすることを示します。
static int TRANS_NONE
          変換をまったく Sprite に適用しないことを示します。
static int TRANS_ROT180
          時計方向に180度の回転が Sprite に適用されることを示します。
static int TRANS_ROT270
          時計方向に270度の回転が Sprite に適用されることを示します。
static int TRANS_ROT90
          時計方向に90度の回転が Sprite に適用されることを示します。
 
コンストラクタの概要
Sprite(Image image)
          提供された Image を使用するアニメーションしない Sprite を作成します。
Sprite(Image image, int frameWidth, int frameHeight)
          提供された Image に含まれたフレームを使用することでアニメーションする新しい Sprite を作成します。
Sprite(Sprite s)
          別の Sprite を元に新しい Sprite を作成します。
 
メソッドの概要
 boolean collidesWith(Image image, int x, int y, boolean pixelLevel)
          この Sprite と指定された左上角の位置にある指定された Image とのとのコリジョン(衝突)のチェックをします。
 boolean collidesWith(Sprite s, boolean pixelLevel)
          この Sprite と指定した Sprite のコリジョン(衝突)をチェックします。
 boolean collidesWith(TiledLayer t, boolean pixelLevel)
          この Sprite と指定された TiledLayer とのコリジョン(衝突)のチェックをします。
 void defineCollisionRectangle(int x, int y, int width, int height)
          コリジョン(衝突)検出目的に使用する Sprite の境界矩形を定義します。
 void defineReferencePixel(int x, int y)
          この Sprite のための参照ピクセルを定義します。
 int getFrame()
          フレーム・シーケンス中の現在のインデックスを取得します。
 int getFrameSequenceLength()
          フレーム・シーケンスの要素数を取得します。
 int getRawFrameCount()
          この Sprite のための生フレームの数を取得します。
 int getRefPixelX()
          描画座標系における、この Sprite の参照ピクセルの水平位置を取得します。
 int getRefPixelY()
          描画座標系における、この Sprite の参照ピクセルの垂直位置を取得します。
 void nextFrame()
          フレーム・シーケンス中の次のフレームを選択します。
 void paint(Graphics g)
          Sprite の描画を行います。
 void prevFrame()
          フレーム・シーケンス中の前のフレームを選択します。
 void setFrame(int sequenceIndex)
          フレーム・シーケンス中の現在のフレームを選択します。
 void setFrameSequence(int[] sequence)
          この Sprite にフレーム・シーケンスを設定します。
 void setImage(Image img, int frameWidth, int frameHeight)
          この Sprite のフレームを含む Image を変更します。
 void setRefPixelPosition(int x, int y)
          この Sprite の参照ピクセルの位置を描画座標系の (x, y) に置くように設定します。
 void setTransform(int transform)
          この Sprite に変形を設定します。
 
クラス javax.microedition.lcdui.game.Layer から継承されたメソッド
getHeight, getWidth, getX, getY, isVisible, move, setPosition, setVisible
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

TRANS_NONE

public static final int TRANS_NONE

変換をまったく Sprite に適用しないことを示します。 この定数には値 0 が割り当てられます。

関連項目:
定数フィールド値

TRANS_ROT90

public static final int TRANS_ROT90

時計方向に90度の回転が Sprite に適用されることを示します。 この定数には値 5 が割り当てられます。

関連項目:
定数フィールド値

TRANS_ROT180

public static final int TRANS_ROT180

時計方向に180度の回転が Sprite に適用されることを示します。 この定数には値 3 が割り当てられます。

関連項目:
定数フィールド値

TRANS_ROT270

public static final int TRANS_ROT270

時計方向に270度の回転が Sprite に適用されることを示します。 この定数には値 6 が割り当てられます。

関連項目:
定数フィールド値

TRANS_MIRROR

public static final int TRANS_MIRROR

Spirte が垂直中央において折り返して見えるようにすることを示します。 この定数には値 2 が割り当てられます。

関連項目:
定数フィールド値

TRANS_MIRROR_ROT90

public static final int TRANS_MIRROR_ROT90

Spirte が垂直中央において折り返し、さらに時計回りに90度回転して見えるようにすることを示します。 この定数には値 7 が割り当てられます。

関連項目:
定数フィールド値

TRANS_MIRROR_ROT180

public static final int TRANS_MIRROR_ROT180

Spirte が垂直中央において折り返し、さらに時計回りに180度回転して見えるようにすることを示します。 この定数には値 1 が割り当てられます。

関連項目:
定数フィールド値

TRANS_MIRROR_ROT270

public static final int TRANS_MIRROR_ROT270

Spirte が垂直中央において折り返し、さらに時計回りに270度回転して見えるようにすることを示します。 この定数には値 4 が割り当てられます。

関連項目:
定数フィールド値
コンストラクタの詳細

Sprite

public Sprite(Image image)

提供された Image を使用するアニメーションしない Sprite を作成します。 このコンストラクタは以下の記述と等価です:

    new Sprite(image, image.getWidth(), image.getHeight()) 

デフォルトで、Sprite は可視状態で、左上角が描画座標系の位置 (0, 0) に設定されます。

パラメータ:
image - Sprite のシングルフレームとして使用する Image を渡します。
例外:
NullPointerException - パラメータ imagenull の場合に throw します。

Sprite

public Sprite(Image image,
              int frameWidth,
              int frameHeight)

提供された Image に含まれたフレームを使用することでアニメーションする新しい Sprite を作成します。 frameWidth および frameHeight によって指定されたサイズで、等しいサイズにフレームが分割できなければなりません。 それらはイメージ中で水平、垂直あるいはマス目に拡張されるかもしれません。 ソース・イメージの幅はフレーム幅の整数倍でなければなりません。そしてソース・イメージの高さはフレームの高さの整数倍でなければなりません。 Layer.getWidth() および Layer.getHeight() が返す値は、Sprite の現在の変形条件をフレームの幅とフレームの高さに反映します。

Sprite はデフォルトのフレーム・シーケンスをフレーム0から開始する生フレーム番号に対応するように設定します。 フレーム・シーケンスは setFrameSequence(int[]) によって変更することができます。

デフォルトで、Sprite は可視状態で、左上角が描画座標系の位置 (0, 0) に設定されます。

パラメータ:
image - で使用する Image を渡します。
frameWidth - 個々の生フレームの幅をピクセル単位で渡します。
frameHeight - 個々の生フレームの高さをピクセル単位で渡します。
例外:
NullPointerException - パラメータ imagenull 場合に throw します。
IllegalArgumentException - パラメータ frameWidth または frameHeight が1未満か、Image の幅がパラメータ frameWidth の整数倍ではないか、Image の高さがパラメータ frameHeight の整数倍ではなければ throw します。

Sprite

public Sprite(Sprite s)

別の Sprite を元に新しい Sprite を作成します。

元の Sprite の全てのインスタンス属性(生フレーム、位置、フレーム・シーケンス、現在のフレーム、参照ポイント、コリジョン矩形、および可視・不可視)を新しい Sprite にコピーします。

パラメータ:
s - コピーを作成する Sprite を渡します。
例外:
IllegalArgumentException - パラメータ snull の場合に throw します。
メソッドの詳細

defineReferencePixel

public void defineReferencePixel(int x,
                                 int y)

この Sprite のための参照ピクセルを定義します。 ピクセルは Sprite の変形されていないフレームにおける左上角からの相対位置で定義します。そして、それはフレームの境界の外に置かれるかもしれません。 この角は、現在の変形によって描画座標系における左上角として一致していないかもしれません。

デフォルトで、Sprite の参照ピクセルは位置 (0, 0) にあります; すなわち、生フレームの左上角のピクセルです。

参照ピクセルを変更しても、描画座標系の Sprite の物理的位置は変化しません。 すなわち、参照ピクセルを定義した結果、Layer.getX() および Layer.getY() によって返される値は変化しません。 しかし、新しい定義で参照ピクセルを伴うメソッドへの、その後の呼び出しには影響を与えます。

パラメータ:
x - 変形していないフレームの左端から相対する、参照ピクセルの水平位置を渡します。
y - 変形していないフレームの上端から相対する、参照ピクセルの垂直位置を渡します。
関連項目:
setRefPixelPosition(int, int), getRefPixelX(), getRefPixelY()

setRefPixelPosition

public void setRefPixelPosition(int x,
                                int y)

この Sprite の参照ピクセルの位置を描画座標系の (x, y) に置くように設定します。

パラメータ:
x - 参照ピクセルを置く水平位置を渡します。
y - 参照ピクセルを置く垂直位置を渡します。
関連項目:
defineReferencePixel(int, int), getRefPixelX(), getRefPixelY()

getRefPixelX

public int getRefPixelX()

描画座標系における、この Sprite の参照ピクセルの水平位置を取得します。

戻り値:
参照ピクセルの水平位置を返します。
関連項目:
defineReferencePixel(int, int), setRefPixelPosition(int, int), getRefPixelY()

getRefPixelY

public int getRefPixelY()

描画座標系における、この Sprite の参照ピクセルの垂直位置を取得します。

戻り値:
参照ピクセルの垂直位置を返します。
関連項目:
defineReferencePixel(int, int), setRefPixelPosition(int, int), getRefPixelX()

setFrame

public void setFrame(int sequenceIndex)

フレーム・シーケンス中の現在のフレームを選択します。

paint(Graphics) メソッドが呼ばれたときに現在のフレームがレンダリングされます。

提供されたインデックスは、実際のフレームそのもののインデックスではなく、フレーム・シーケンス中の希望のエントリを示します。

パラメータ:
sequenceIndex - フレーム・シーケンスの希望のエントリのインデックスを渡します。
例外:
IndexOutOfBoundsException - パラメータ sequenceIndex0 未満か、現在のフレーム・シーケンス(またはデフォルト・シーケンスのための生フレームの数)と等しいかそれ以上であるならば throw します。
関連項目:
setFrameSequence(int[]), getFrame()

getFrame

public final int getFrame()

フレーム・シーケンス中の現在のインデックスを取得します。

返すインデックスは、表示される実際のフレームのインデックスではなく、フレーム・シーケンスの現在のエントリへの参照です。

戻り値:
フレーム・シーケンスにおける現在のインデックスを返します。
関連項目:
setFrameSequence(int[]), setFrame(int)

getRawFrameCount

public int getRawFrameCount()

この Sprite のための生フレームの数を取得します。 戻り値はフレームの数を反映します; それは Sprite フレーム・シーケンスの長さを反映しません。 しかし、デフォルトのフレーム・シーケンスが使用されている状態では、これら2つは同じ値になります。

戻り値:
この Sprite のための生フレームの数を返します。
関連項目:
getFrameSequenceLength()

getFrameSequenceLength

public int getFrameSequenceLength()

フレーム・シーケンスの要素数を取得します。 戻り値は Sprite のフレーム・シーケンスの長さを反映します; それは生フレームの数を反映しません。 しかし、デフォルトのフレーム・シーケンスが使用されている状態では、これら2つは同じ値になります。

戻り値:
この Sprite のフレーム・シーケンスの要素数を返します。
関連項目:
getRawFrameCount()

nextFrame

public void nextFrame()

フレーム・シーケンス中の次のフレームを選択します。

フレーム・シーケンスは循環するとみなします。すなわち、このメソッドがシーケンスの終端で呼ばれるなら、このメソッドによってシーケンスの先頭に移動します。

関連項目:
setFrameSequence(int[]), prevFrame()

prevFrame

public void prevFrame()

フレーム・シーケンス中の前のフレームを選択します。

フレーム・シーケンスは循環するとみなします。すなわち、このメソッドがシーケンスの先端で呼ばれるなら、このメソッドによってシーケンスは終端に移動します。

関連項目:
setFrameSequence(int[]), nextFrame()

paint

public final void paint(Graphics g)

Sprite の描画を行います。

提供された Graphics オブジェクトを使用して Sprite の現在のフレームをレンダリングします。 Sprite の左上角は、Graphics オブジェクトの原点からの相対する Sprite の現在位置へレンダリングします。 Layer.getX()Layer.getY() を呼び出すことで Sprite の左上角の現在位置を取得することができます。

レンダリングは Graphics オブジェクトのクリップ領域の影響を受けることがあります。 Sprite が可視状態にある場合に限り描かれます。

SpriteImage が可変モードなら、SpriteImage の現在の内容を使用してレンダリングを行います。

定義:
クラス Layer 内の paint
パラメータ:
g - Sprite を描画するために使用する Graphics オブジェクトを渡します。
例外:
NullPointerException - パラメータ gnull ならば throw します。

setFrameSequence

public void setFrameSequence(int[] sequence)

この Sprite にフレーム・シーケンスを設定します。

全ての Sprite には、スプライト・フレームを表示する順番であるデフォルト・シーケンスがあります。 このメソッドは、利用可能なフレームを使用した任意のシーケンスの新規作成を受け入れます。 フレーム・シーケンスの現在のインデックスはメソッドの呼び出しの結果、ゼロにリセットされます。

このメソッドが呼ばれたときに、シーケンス配列の内容のコピーを作成します; このため、このメソッドから処理が返ったあとに配列に対して行ったどのような変更も Sprite のフレーム・シーケンスには影響しません。

null が渡されると、Sprite はデフォルトのフレーム・シーケンスに戻します。

パラメータ:
sequence - 各整数値がフレームインデックスを表す整数配列を渡します。
例外:
ArrayIndexOutOfBoundsException - パラメータ sequencenull ではなく、配列内のいずれかの整数が getRawFrameCount() が報告する値と等しいか大きいか、あるいは 0 よりも小さい場合に throw します。
IllegalArgumentException - 配列の要素数が 1 未満の場合に throw します。
関連項目:
nextFrame(), prevFrame(), setFrame(int), getFrame()

setImage

public void setImage(Image img,
                     int frameWidth,
                     int frameHeight)

この Sprite のフレームを含む Image を変更します。

Sprite の現在の生フレームを新しい生フレームのセットに置き換えます。 フレームがイメージからどのように作成されるかに関しては、コンストラクタ Sprite(Image, int, int) を参照してください。 Layer.getWidth()Layer.getHeight() の戻り値は、Sprite の現在の変形条件と新しいフレームの幅とフレーム高さを反映します。

Sprite のためのイメージを変更すると、生フレームの数が変化するかもしれません。 新しいフレームのセットが前のフレームと同じかそれよりも多い生フレームを用意するなら:

新しいフレームのセットがそれより前のフレームより少ないフレームを用意するなら:

このメソッドを呼び出した結果、Sprite 内の定義済みの位置と描画座標系における自身の位置ならびに参照ポイント(参照ピクセル)の位置は変更されません。 しかし、フレームサイズを変更し Sprite が変形されることにより Sprite の左上角の位置は変化するかもしれないため、参照ポイント(参照ピクセル)は移動しない状態のままです。

このメソッドによって Sprite のフレームサイズを変更するなら、コリジョン矩形をデフォルト値にリセットします(すなわち、それは変形していない Sprite の新しい境界に設定されます)。

パラメータ:
img - Sprite で使用する Image を渡します。
frameWidth - 個々の生フレームのピクセル単位の幅を渡します。
frameHeight - 個々の生フレームのピクセル単位の高さを渡します。
例外:
NullPointerException - パラメータ imgnull ならば throw します。
IllegalArgumentException - パラメータ frameWidth または frameHeight が1未満か、Image の幅がパラメータ frameWidth の整数倍ではないか、Image の高さがパラメータ frameHeight の整数倍ではなければ throw します。

defineCollisionRectangle

public void defineCollisionRectangle(int x,
                                     int y,
                                     int width,
                                     int height)

コリジョン(衝突)検出目的に使用する Sprite の境界矩形を定義します。 この矩形は変形していない Sprite の左上隅からに相対して指定し、コリジョン検出が起こったか否かをチェックする領域を定義します。 ピクセル・レベルでの検出は、コリジョン矩形の中のそれらのピクセルのみがチェックされます。 デフォルトで Sprite のコリジョン矩形は (0, 0) に位置し、Sprite と同じ大きさが設定されます。 コリジョン矩形はデフォルト矩形よりさらに大きいか、あるいは小さくなるように指定することができます; より大きくするなら、Sprite の境界の外におけるピクセルが、ピクセル・レベルのコリジョン検出では透明であると仮定します。

パラメータ:
x - Sprite の左端から相対するコリジョン矩形の水平位置を渡します。
y - Sprite の上端から相対するコリジョン矩形の垂直位置を渡します。
width - コリジョン矩形の幅を渡します。
height - コリジョン矩形の高さを渡します。
例外:
IllegalArgumentException - 指定された width または height0 未満の場合に throw します。

setTransform

public void setTransform(int transform)

この Sprite に変形を設定します。 外観を変更してレンダリングするための変形を Sprite に適用します。 変形はオリジナルの Sprite イメージに適用します; それらは累積できず、また、結合できません。 デフォルトの、Sprite の変形は TRANS_NONE です。

いくつかの変形において90度または270度の回転が行われるため、これらの使用は Sprite の幅と高さの交換をもたらすかもしれません。 その結果、Layer.getWidth()Layer.getHeight() による戻り値は変化するかもしれません。

また、コリジョン矩形が変形によって変更されるため、それらは Sprite に関するピクセル・データに比例して変化せずに保持されます。 同様に、定義された参照ピクセルはこのメソッドでは変更されませんが、Sprite における視覚位置は結果として変化するかもしれません。 したがって、事実上参照ピクセルは変換のための中央位置(中央ポイント)になります。 その結果、変形が適用される前と後も getRefPixelX()getRefPixelY() の戻り値は変化しません。しかし、Layer.getX()Layer.getY() の戻り値は変化するかもしれません。

パラメータ:
transform - この Sprite における希望する変形を渡します。
例外:
IllegalArgumentException - 要求された transform が無効ならば throw します。
関連項目:
TRANS_NONE, TRANS_ROT90, TRANS_ROT180, TRANS_ROT270, TRANS_MIRROR, TRANS_MIRROR_ROT90, TRANS_MIRROR_ROT180, TRANS_MIRROR_ROT270

collidesWith

public final boolean collidesWith(Sprite s,
                                  boolean pixelLevel)

この Sprite と指定した Sprite のコリジョン(衝突)をチェックします。

ピクセル・レベルでの検出を使用するなら、不透明なピクセルが衝突する場合にだけコリジョンを検出します。 すなわち、最初の Sprite の不透明なピクセルと第2の Sprite の不透明なピクセルが衝突したときに、コリジョンは検出されます。 Sprite のそれぞれのコリジョン矩形の中に含まれるピクセルだけをチェックします。

ピクセル・レベルでの検出を使用しないなら、このメソッドは単に Sprite のコリジョン矩形が交差しているか否かをチェックします。

Sprite に適用されたどのような変形も自動的に考慮します。

双方の Sprite は、コリジョンが検出されるためには可視状態になければなりません。

パラメータ:
s - コリジョン・テストを行う対象の Sprite を渡します。
pixelLevel - コリジョンのテストをピクセル単位で行う場合は true を、単に矩形によるテストを行う場合は false を渡します。
戻り値:
2つの Sprite が衝突していれば true を、そうでなければ false を返します。
例外:
NullPointerException - パラメータ snull であれば throw します。

collidesWith

public final boolean collidesWith(TiledLayer t,
                                  boolean pixelLevel)

この Sprite と指定された TiledLayer とのコリジョン(衝突)のチェックをします。 ピクセル・レベルでの検出を使用するなら、不透明なピクセルが衝突する場合にだけコリジョンを検出します。 すなわち、Sprite の不透明なピクセルが TiledLayer の不透明なピクセルと衝突する場合にだけコリジョンを検出します。 Sprite のコリジョン矩形の中に含まれるピクセルだけをチェックします。

ピクセル・レベルでの検出を使用しないなら、このメソッドは単に Sprite のコリジョン矩形が TiledLayer の空ではないセルと交差するか否かをチェックします。

Sprite に適用されたどのような変形も自動的に考慮します。

SpriteTiledLayer は、コリジョンが検出されるためにはともに可視状態になければなりません。

パラメータ:
t - コリジョン・テストを行う対象の TiledLayer を渡します。
pixelLevel - コリジョンのテストをピクセル単位で行う場合は true を、単に矩形によるテストを行う場合は false を渡します。
戻り値:
SpriteTiledLayer が衝突していれば true を、そうでなければ false を返します。
例外:
NullPointerException - パラメータ tnull であれば throw します。

collidesWith

public final boolean collidesWith(Image image,
                                  int x,
                                  int y,
                                  boolean pixelLevel)

この Sprite と指定された左上角の位置にある指定された Image とのとのコリジョン(衝突)のチェックをします。 ピクセル・レベルでの検出を使用するなら、不透明なピクセルが衝突する場合にだけコリジョンを検出します。 すなわち、Sprite の不透明なピクセルが Image の不透明なピクセルと衝突する場合にだけコリジョンを検出します。 Sprite のコリジョン矩形の中に含まれるピクセルだけをチェックします。

ピクセル・レベルでの検出を使用しないなら、このメソッドは単に Sprite のコリジョン矩形が Image の境界と交差するか否かをチェックします。

Sprite に適用されたどのような変形も自動的に考慮します。

Sprite は、コリジョンが検出されるためには可視状態になければなりません。

パラメータ:
image - コリジョン・テストを行う対象の Image を渡します。
x - Image の左上角の水平な位置を渡します。
y - Image の左上角の垂直な位置を渡します。
pixelLevel - コリジョンのテストをピクセル単位で行う場合は true を、単に矩形によるテストを行う場合は false を渡します。
戻り値:
SpriteImage が衝突していれば true を、そうでなければ false を返します。
例外:
NullPointerException - パラメータ imagenull であれば throw します。

Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

公式仕様書原文の著作権表記等(※):

Mobile Information Device Profile Specification ("Specification")
Version: 2.0
Status: FCS
Release: November 5, 2002

Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc.
All rights reserved.
※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。

※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。

この API リファレンスは仕様書の日本語版という位置づけでは作成していませんし、仕様書ほど厳格でもありません。MUST、SHOULD、MAY などの仕様の条件を強調する文を維持していません(反映すらしていない個所もあります)。仮想マシンおよび MIDP の実装のために使用することは避けてください。そのような用途には必ず公式仕様書原文そのものを用いるべきです。
この API リファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Motorola, Inc、Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Motorola, Inc、Java Community Process 等とは一切関係ありません。したがってこの API リファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本 API リファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカル・ファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009,2011 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.0 + MIDP 1.0" API Reference はこちらです。