|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.microedition.lcdui.game.Layer javax.microedition.lcdui.game.Sprite
public class Sprite
Sprite
は Image
に保存されたいくつかのフレームの1つをレンダリングできる基本的な視覚要素です;
Sprite
をアニメーションするために異なったフレームを見せることができます。
また、さらに外観を変えるために反転や回転などのいくつかの変形を Sprite
に適用できます。
全ての Layer
サブクラスがそうであるように、Sprite
は位置を変えることができ、そしてまた、それを可視状態および不可視状態にすることができます。
Sprite
をレンダリングするために使用する生フレームを単一の Image
オブジェクトから供給します。それは不変モードでも可変モードでもかまいません。
1個以上のフレームが使用されるなら、Image
は指定された幅と高さの一連の等しいサイズのフレームに分割されます。
以下の図形に示すように、ゲーム開発者が最も都合がよいように、同じセットのフレームはいくつかの異なった整理をされて保存することができます。
各フレームには固有のインデックス番号が割り当てられます。
インデックス 0
が Image
の左上角に位置するフレームに割り当てられます。
そのとき、行を優先して連続した残りのフレームに付番します(インデックス・リストは最初の列から横断して割り当てられ、続いて2列目など)。
getRawFrameCount()
メソッドは生フレームの総数を返します。
Sprite
のフレーム・シーケンスは、表示するためにフレームに関する順序付きリストを定義します。
デフォルトのフレーム・シーケンスは利用可能なフレームのリストを反映するため、シーケンスインデックスと対応するフレームインデックスの間にはダイレクト・マッピング(直接割り当て)が行われます。
これはまた、デフォルトのフレーム・シーケンスの長さは生フレームの数と等しいことを意味します。
例えば、Sprite
に4個のフレームがあるなら、デフォルトのフレーム・シーケンスは { 0, 1, 2, 3 }
です。
開発者は手動でフレーム・シーケンスの現在のフレームを切り替えなければなりません。 これらのメソッドが常に配列内への参照位置を操作し、フレーム・インデックス・リストは操作しないことに注意してください。 しかし、デフォルトのフレーム・シーケンスが使用されているなら、シーケンス・インデックス・リストとフレーム・インデックス・リストは交換可能です。
望むなら、任意のフレーム・シーケンスを Sprite
のために定義することができます。
フレーム・シーケンスは少なくとも1つの要素を含まなければなりません。そして、各要素は有効なフレームインデックスへの参照を含まなければなりません。
新しいフレーム・シーケンスを定義することにより、開発者は希望した任意の順番で Sprite
のフレームを表示することができます;
フレームは、繰り返し、省略、逆順などで表示されるかもしれません。
例として、以下の図は専用のフレーム・シーケンスが蚊をアニメーションさせるためにどのように使用されるかを示します。 フレーム・シーケンスは、蚊が翼を3回ばたつかせて、サイクルが繰り返される前に一瞬止まるように設計してあります。
ディスプレイの更新後に各回 nextFrame()
を呼び出すことによって、結果として起こるアニメーションは次のようになるでしょう:
Sprite
は Layer
のサブクラスであり、setPosition(x, y)
、getX()
および getY()
などの位置を設定および取得するための様々なメソッドを引き継ぎます。
これらのメソッドはすべて、Sprite
の視覚領域の左上角に対する位置を定義します。
しかし、いくつかの場合はフレームの中の任意のピクセルに対して Sprite
の位置を定義するのは(特に変形を Sprite
に適用するなら)利便性を向上させます。
このため、Sprite
は参照ピクセルの概念を含みます。
参照ピクセルは、Sprite
の defineReferencePixel(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
によって保持されている現状情報(すなわち、位置、フレーム、可視・不可視)に応じて、Sprite
は Graphics
オブジェクトで描かれます。
Sprite
を消去するのは、常に Sprite
クラスの外のコードの責任です。
メーカーが採用を検討しているどのようなテクニックも Sprite
を実装するために使用することができます(例えば、ハードウェア・アクセラレーションを全ての Sprite
のために、あるサイズの Sprite
のために、あるいはまったく用いない)。
いくつかのプラットフォームにおいては、あるサイズの Sprite
は他のものよりも効率的であるかもしれません。
メーカーはこれらのデバイス特有の特性に関する情報を開発者に提供することを選択することができます。
フィールドの概要 | |
---|---|
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 |
フィールドの詳細 |
---|
public static final int TRANS_NONE
変換をまったく Sprite
に適用しないことを示します。
この定数には値 0
が割り当てられます。
public static final int TRANS_ROT90
時計方向に90度の回転が Sprite
に適用されることを示します。
この定数には値 5
が割り当てられます。
public static final int TRANS_ROT180
時計方向に180度の回転が Sprite
に適用されることを示します。
この定数には値 3
が割り当てられます。
public static final int TRANS_ROT270
時計方向に270度の回転が Sprite
に適用されることを示します。
この定数には値 6
が割り当てられます。
public static final int TRANS_MIRROR
Spirte
が垂直中央において折り返して見えるようにすることを示します。
この定数には値 2
が割り当てられます。
public static final int TRANS_MIRROR_ROT90
Spirte
が垂直中央において折り返し、さらに時計回りに90度回転して見えるようにすることを示します。
この定数には値 7
が割り当てられます。
public static final int TRANS_MIRROR_ROT180
Spirte
が垂直中央において折り返し、さらに時計回りに180度回転して見えるようにすることを示します。
この定数には値 1
が割り当てられます。
public static final int TRANS_MIRROR_ROT270
Spirte
が垂直中央において折り返し、さらに時計回りに270度回転して見えるようにすることを示します。
この定数には値 4
が割り当てられます。
コンストラクタの詳細 |
---|
public Sprite(Image image)
提供された Image
を使用するアニメーションしない Sprite
を作成します。
このコンストラクタは以下の記述と等価です:
new Sprite(image, image.getWidth(), image.getHeight())
デフォルトで、Sprite
は可視状態で、左上角が描画座標系の位置 (0, 0)
に設定されます。
image
- Sprite
のシングルフレームとして使用する Image
を渡します。
NullPointerException
- パラメータ image
が null
の場合に throw します。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
- パラメータ image
が null
場合に throw します。
IllegalArgumentException
- パラメータ frameWidth
または frameHeight
が1未満か、Image
の幅がパラメータ frameWidth
の整数倍ではないか、Image
の高さがパラメータ frameHeight
の整数倍ではなければ throw します。
public Sprite(Sprite s)
別の Sprite
を元に新しい Sprite
を作成します。
元の Sprite
の全てのインスタンス属性(生フレーム、位置、フレーム・シーケンス、現在のフレーム、参照ポイント、コリジョン矩形、および可視・不可視)を新しい Sprite
にコピーします。
s
- コピーを作成する Sprite
を渡します。
IllegalArgumentException
- パラメータ s
が null
の場合に throw します。メソッドの詳細 |
---|
public void defineReferencePixel(int x, int y)
この Sprite
のための参照ピクセルを定義します。
ピクセルは Sprite
の変形されていないフレームにおける左上角からの相対位置で定義します。そして、それはフレームの境界の外に置かれるかもしれません。
この角は、現在の変形によって描画座標系における左上角として一致していないかもしれません。
デフォルトで、Sprite
の参照ピクセルは位置 (0, 0)
にあります;
すなわち、生フレームの左上角のピクセルです。
参照ピクセルを変更しても、描画座標系の Sprite
の物理的位置は変化しません。
すなわち、参照ピクセルを定義した結果、Layer.getX()
および Layer.getY()
によって返される値は変化しません。
しかし、新しい定義で参照ピクセルを伴うメソッドへの、その後の呼び出しには影響を与えます。
x
- 変形していないフレームの左端から相対する、参照ピクセルの水平位置を渡します。y
- 変形していないフレームの上端から相対する、参照ピクセルの垂直位置を渡します。setRefPixelPosition(int, int)
,
getRefPixelX()
,
getRefPixelY()
public void setRefPixelPosition(int x, int y)
この Sprite
の参照ピクセルの位置を描画座標系の (x, y)
に置くように設定します。
x
- 参照ピクセルを置く水平位置を渡します。y
- 参照ピクセルを置く垂直位置を渡します。defineReferencePixel(int, int)
,
getRefPixelX()
,
getRefPixelY()
public int getRefPixelX()
描画座標系における、この Sprite
の参照ピクセルの水平位置を取得します。
defineReferencePixel(int, int)
,
setRefPixelPosition(int, int)
,
getRefPixelY()
public int getRefPixelY()
描画座標系における、この Sprite
の参照ピクセルの垂直位置を取得します。
defineReferencePixel(int, int)
,
setRefPixelPosition(int, int)
,
getRefPixelX()
public void setFrame(int sequenceIndex)
フレーム・シーケンス中の現在のフレームを選択します。
paint(Graphics)
メソッドが呼ばれたときに現在のフレームがレンダリングされます。
提供されたインデックスは、実際のフレームそのもののインデックスではなく、フレーム・シーケンス中の希望のエントリを示します。
sequenceIndex
- フレーム・シーケンスの希望のエントリのインデックスを渡します。
IndexOutOfBoundsException
- パラメータ sequenceIndex
は 0
未満か、現在のフレーム・シーケンス(またはデフォルト・シーケンスのための生フレームの数)と等しいかそれ以上であるならば throw します。setFrameSequence(int[])
,
getFrame()
public final int getFrame()
フレーム・シーケンス中の現在のインデックスを取得します。
返すインデックスは、表示される実際のフレームのインデックスではなく、フレーム・シーケンスの現在のエントリへの参照です。
setFrameSequence(int[])
,
setFrame(int)
public int getRawFrameCount()
この Sprite
のための生フレームの数を取得します。
戻り値はフレームの数を反映します;
それは Sprite
フレーム・シーケンスの長さを反映しません。
しかし、デフォルトのフレーム・シーケンスが使用されている状態では、これら2つは同じ値になります。
Sprite
のための生フレームの数を返します。getFrameSequenceLength()
public int getFrameSequenceLength()
フレーム・シーケンスの要素数を取得します。
戻り値は Sprite
のフレーム・シーケンスの長さを反映します;
それは生フレームの数を反映しません。
しかし、デフォルトのフレーム・シーケンスが使用されている状態では、これら2つは同じ値になります。
Sprite
のフレーム・シーケンスの要素数を返します。getRawFrameCount()
public void nextFrame()
フレーム・シーケンス中の次のフレームを選択します。
フレーム・シーケンスは循環するとみなします。すなわち、このメソッドがシーケンスの終端で呼ばれるなら、このメソッドによってシーケンスの先頭に移動します。
setFrameSequence(int[])
,
prevFrame()
public void prevFrame()
フレーム・シーケンス中の前のフレームを選択します。
フレーム・シーケンスは循環するとみなします。すなわち、このメソッドがシーケンスの先端で呼ばれるなら、このメソッドによってシーケンスは終端に移動します。
setFrameSequence(int[])
,
nextFrame()
public final void paint(Graphics g)
Sprite
の描画を行います。
提供された Graphics
オブジェクトを使用して Sprite
の現在のフレームをレンダリングします。
Sprite
の左上角は、Graphics
オブジェクトの原点からの相対する Sprite
の現在位置へレンダリングします。
Layer.getX()
と Layer.getY()
を呼び出すことで Sprite
の左上角の現在位置を取得することができます。
レンダリングは Graphics
オブジェクトのクリップ領域の影響を受けることがあります。
Sprite
が可視状態にある場合に限り描かれます。
Sprite
の Image
が可変モードなら、Sprite
は Image
の現在の内容を使用してレンダリングを行います。
Layer
内の paint
g
- Sprite
を描画するために使用する Graphics
オブジェクトを渡します。
NullPointerException
- パラメータ g
が null
ならば throw します。public void setFrameSequence(int[] sequence)
この Sprite
にフレーム・シーケンスを設定します。
全ての Sprite
には、スプライト・フレームを表示する順番であるデフォルト・シーケンスがあります。
このメソッドは、利用可能なフレームを使用した任意のシーケンスの新規作成を受け入れます。
フレーム・シーケンスの現在のインデックスはメソッドの呼び出しの結果、ゼロにリセットされます。
このメソッドが呼ばれたときに、シーケンス配列の内容のコピーを作成します;
このため、このメソッドから処理が返ったあとに配列に対して行ったどのような変更も Sprite
のフレーム・シーケンスには影響しません。
null
が渡されると、Sprite
はデフォルトのフレーム・シーケンスに戻します。
sequence
- 各整数値がフレームインデックスを表す整数配列を渡します。
ArrayIndexOutOfBoundsException
- パラメータ sequence
が null
ではなく、配列内のいずれかの整数が getRawFrameCount()
が報告する値と等しいか大きいか、あるいは 0
よりも小さい場合に throw します。
IllegalArgumentException
- 配列の要素数が 1
未満の場合に throw します。nextFrame()
,
prevFrame()
,
setFrame(int)
,
getFrame()
public void setImage(Image img, int frameWidth, int frameHeight)
この Sprite
のフレームを含む Image
を変更します。
Sprite
の現在の生フレームを新しい生フレームのセットに置き換えます。
フレームがイメージからどのように作成されるかに関しては、コンストラクタ Sprite(Image, int, int)
を参照してください。
Layer.getWidth()
と Layer.getHeight()
の戻り値は、Sprite
の現在の変形条件と新しいフレームの幅とフレーム高さを反映します。
Sprite
のためのイメージを変更すると、生フレームの数が変化するかもしれません。
新しいフレームのセットが前のフレームと同じかそれよりも多い生フレームを用意するなら:
setFrameSequence(int[])
を使用)は変更しません。
全くカスタム・フレーム・シーケンスを定義していないと(つまり、デフォルトのフレーム・シーケンスを使用中なら)、新しいフレームのセットのためのデフォルト・フレーム・シーケンスになるようにデフォルト・フレーム・シーケンスを更新します。
換言すると、まるでこの新しいイメージがコンストラクタで使用されたかのように、新しいデフォルト・フレーム・シーケンスは新しい生フレームのセットのフレームを全て含みます。
新しいフレームのセットがそれより前のフレームより少ないフレームを用意するなら:
0
にリセットされます。
このメソッドを呼び出した結果、Sprite
内の定義済みの位置と描画座標系における自身の位置ならびに参照ポイント(参照ピクセル)の位置は変更されません。
しかし、フレームサイズを変更し Sprite
が変形されることにより Sprite
の左上角の位置は変化するかもしれないため、参照ポイント(参照ピクセル)は移動しない状態のままです。
このメソッドによって Sprite
のフレームサイズを変更するなら、コリジョン矩形をデフォルト値にリセットします(すなわち、それは変形していない Sprite
の新しい境界に設定されます)。
img
- Sprite
で使用する Image
を渡します。frameWidth
- 個々の生フレームのピクセル単位の幅を渡します。frameHeight
- 個々の生フレームのピクセル単位の高さを渡します。
NullPointerException
- パラメータ img
が null
ならば throw します。
IllegalArgumentException
- パラメータ frameWidth
または frameHeight
が1未満か、Image
の幅がパラメータ frameWidth
の整数倍ではないか、Image
の高さがパラメータ frameHeight
の整数倍ではなければ throw します。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
または height
が 0
未満の場合に throw します。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
public final boolean collidesWith(Sprite s, boolean pixelLevel)
この Sprite
と指定した Sprite
のコリジョン(衝突)をチェックします。
ピクセル・レベルでの検出を使用するなら、不透明なピクセルが衝突する場合にだけコリジョンを検出します。
すなわち、最初の Sprite
の不透明なピクセルと第2の Sprite
の不透明なピクセルが衝突したときに、コリジョンは検出されます。
Sprite
のそれぞれのコリジョン矩形の中に含まれるピクセルだけをチェックします。
ピクセル・レベルでの検出を使用しないなら、このメソッドは単に Sprite
のコリジョン矩形が交差しているか否かをチェックします。
Sprite
に適用されたどのような変形も自動的に考慮します。
双方の Sprite
は、コリジョンが検出されるためには可視状態になければなりません。
s
- コリジョン・テストを行う対象の Sprite
を渡します。pixelLevel
- コリジョンのテストをピクセル単位で行う場合は true
を、単に矩形によるテストを行う場合は false
を渡します。
Sprite
が衝突していれば true
を、そうでなければ false
を返します。
NullPointerException
- パラメータ s
が null
であれば throw します。public final boolean collidesWith(TiledLayer t, boolean pixelLevel)
この Sprite
と指定された TiledLayer
とのコリジョン(衝突)のチェックをします。
ピクセル・レベルでの検出を使用するなら、不透明なピクセルが衝突する場合にだけコリジョンを検出します。
すなわち、Sprite
の不透明なピクセルが TiledLayer
の不透明なピクセルと衝突する場合にだけコリジョンを検出します。
Sprite
のコリジョン矩形の中に含まれるピクセルだけをチェックします。
ピクセル・レベルでの検出を使用しないなら、このメソッドは単に Sprite
のコリジョン矩形が TiledLayer
の空ではないセルと交差するか否かをチェックします。
Sprite
に適用されたどのような変形も自動的に考慮します。
Sprite
と TiledLayer
は、コリジョンが検出されるためにはともに可視状態になければなりません。
t
- コリジョン・テストを行う対象の TiledLayer
を渡します。pixelLevel
- コリジョンのテストをピクセル単位で行う場合は true
を、単に矩形によるテストを行う場合は false
を渡します。
Sprite
と TiledLayer
が衝突していれば true
を、そうでなければ false
を返します。
NullPointerException
- パラメータ t
が null
であれば throw します。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
を渡します。
Sprite
と Image
が衝突していれば true
を、そうでなければ false
を返します。
NullPointerException
- パラメータ image
が null
であれば 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 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |