com.nttdocomo.ui
クラス Sprite

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

public class Sprite
extends Object

スプライトを定義します。 スプライトは、表示するイメージと表示する位置をもつオブジェクトです。 また、可視・不可視を設定することもできます。

スプライトオブジェクトは、コンストラクタやメソッドの引数に渡されたイメージオブジェクトへの参照を保持します。 そのため、引数に渡されたイメージオブジェクトを変更した場合はスプライトの描画にも影響します。 コンストラクタやメソッドの引数に渡されたイメージオブジェクトが dispose された場合は、 そのスプライトを描画した時に例外が発生します。

スプライトオブジェクトは、表示するイメージや表示する位置、可視・不可視などの設定を保持していますが、 それらの設定は互いに独立です。 すなわち、例えば setImage(Image) メソッドを呼び出してイメージを設定し直したとしても、他の setLocation(int, int) メソッドなどによる設定は影響を受けません。

導入されたバージョン:
DoJa-3.5
関連項目:
SpriteSet

コンストラクタの概要
protected Sprite()
           アプリケーションが直接このコンストラクタを呼び出してオブジェクトを生成することはできません。
  Sprite(Image image)
           イメージを指定してスプライトオブジェクトを生成します。
  Sprite(Image image, int x, int y, int width, int height)
           イメージの一部を指定してスプライトオブジェクトを生成します。
 
メソッドの概要
 int getHeight()
           スプライトの高さを取得します。
 int getWidth()
           スプライトの幅を取得します。
 int getX()
           スプライトを表示する位置の X 座標を取得します。
 int getY()
           スプライトを表示する位置の Y 座標を取得します。
 boolean isVisible()
           スプライトが可視かどうかを取得します。
 void setFlipMode(int flipMode)
           スプライトを反転表示するかどうか設定します。
 void setImage(Image image)
           スプライトのイメージを設定します。
 void setImage(Image image, int x, int y, int width, int height)
           スプライトのイメージを設定します。
 void setLocation(int x, int y)
           スプライトを表示する位置を設定します。
 void setRotation(int[] lt)
           スプライトを表示する際の 2 次元の線形変換の行列を設定します。
 void setVisible(boolean b)
           スプライトが可視かどうかを設定します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Sprite

protected Sprite()
アプリケーションが直接このコンストラクタを呼び出してオブジェクトを生成することはできません。


Sprite

public Sprite(Image image)
イメージを指定してスプライトオブジェクトを生成します。 デフォルトでは表示位置(0, 0)の可視状態に初期化されます。

パラメータ:
image - イメージを指定します。
例外:
NullPointerException - 引数 image に null が指定された場合に発生します。
UIException - 引数 image に既に dispose されているイメージが指定された場合に発生します(ILLEGAL_STATE)。

Sprite

public Sprite(Image image,
              int x,
              int y,
              int width,
              int height)

イメージの一部を指定してスプライトオブジェクトを生成します。 デフォルトでは表示位置(0, 0)の可視状態に初期化されます。

引数 width や height に 0 を指定することができますが、 その状態ではスプライトを描画しても何も描画されません。

パラメータ:
image - イメージを指定します。
x - スプライトとして使用するイメージの一部の矩形の左上の X 座標を指定します。
y - スプライトとして使用するイメージの一部の矩形の左上の Y 座標を指定します。
width - スプライトとして使用するイメージの一部の矩形の幅を指定します。
height - スプライトとして使用するイメージの一部の矩形の高さを指定します。
例外:
NullPointerException - 引数 image に null が指定された場合に発生します。
IllegalArgumentException - 引数 width, height のどちらかまたは両方に 0 未満の値が指定された場合に発生します。
UIException - 引数 image に既に dispose されているイメージが指定された場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - 引数 x, y, width, height で指定された矩形領域が引数 image で指定されたイメージの領域外にはみ出している場合に発生します。
メソッドの詳細

setImage

public void setImage(Image image)
スプライトのイメージを設定します。

パラメータ:
image - イメージを指定します。
例外:
NullPointerException - 引数 image に null が指定された場合に発生します。
UIException - 引数 image に既に dispose されているイメージが指定された場合に発生します(ILLEGAL_STATE)。

setImage

public void setImage(Image image,
                     int x,
                     int y,
                     int width,
                     int height)

スプライトのイメージを設定します。

引数 width や height に 0 を指定することができますが、 その状態ではスプライトを描画しても何も描画されません。

パラメータ:
image - イメージを指定します。
x - スプライトとして使用するイメージの一部の矩形の左上の X 座標を指定します。
y - スプライトとして使用するイメージの一部の矩形の左上の Y 座標を指定します。
width - スプライトとして使用するイメージの一部の矩形の幅を指定します。
height - スプライトとして使用するイメージの一部の矩形の高さを指定します。
例外:
NullPointerException - 引数 image に null が指定された場合に発生します。
IllegalArgumentException - 引数 width, height のどちらかまたは両方に 0 未満の値が指定された場合に発生します。
UIException - 引数 image に既に dispose されているイメージが指定された場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException - 引数 x, y, width, height で指定された矩形領域が引数 image で指定されたイメージの領域外にはみ出している場合に発生します。

getWidth

public int getWidth()

スプライトの幅を取得します。
Sprite(Image), setImage(Image) でイメージが設定された場合はイメージの幅が、 Sprite(Image, int, int, int, int), setImage(Image, int, int, int, int) でイメージが設定された場合は引数で指定された矩形領域の幅が、 スプライトの幅となります。 これは、SpriteSet での衝突判定の対象となる矩形領域の幅と一致します。

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

getHeight

public int getHeight()

スプライトの高さを取得します。
Sprite(Image), setImage(Image) でイメージが設定された場合はイメージの高さが、 Sprite(Image, int, int, int, int), setImage(Image, int, int, int, int) でイメージが設定された場合は引数で指定された矩形領域の高さが、 スプライトの高さとなります。 これは、SpriteSet での衝突判定の対象となる矩形領域の高さと一致します。

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

setLocation

public void setLocation(int x,
                        int y)

スプライトを表示する位置を設定します。

パラメータ:
x - 表示する位置の X 座標を指定します。
y - 表示する位置の Y 座標を指定します。

getX

public int getX()

スプライトを表示する位置の X 座標を取得します。

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

getY

public int getY()
スプライトを表示する位置の Y 座標を取得します。

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

setVisible

public void setVisible(boolean b)

スプライトが可視かどうかを設定します。

不可視に設定されたスプライトは、描画や衝突判定の対象となりません。

パラメータ:
b - 可視にする場合は true を、不可視にする場合は false を指定します。

isVisible

public boolean isVisible()

スプライトが可視かどうかを取得します。

戻り値:
可視な場合は true を、不可視な場合は false を返します。

setFlipMode

public void setFlipMode(int flipMode)

スプライトを反転表示するかどうか設定します。
デフォルトでは Graphics.FLIP_NONE に設定されています。

setRotation(int[]) メソッドによって 2 次元の線形変換の行列が設定されている場合は、 このメソッドによる設定は無効になります。 ただし、このメソッドによる設定は setRotation(int[]) メソッドによる設定とは独立してインスタンスに保持されており、 後で setRotation(null) を呼び出した場合は以前の setFlipMode(int) メソッドによる反転表示の設定が有効となります。

パラメータ:
flipMode - 反転モードを指定します。 Graphics.FLIP_NONE, Graphics.FLIP_HORIZONTAL, Graphics.FLIP_VERTICAL, Graphics.FLIP_ROTATE, Graphics.FLIP_ROTATE_LEFT, Graphics.FLIP_ROTATE_RIGHT の いずれかを指定します。
例外:
IllegalArgumentException - 引数 flipMode に不正な値が指定された場合に発生します。

setRotation

public void setRotation(int[] lt)

スプライトを表示する際の 2 次元の線形変換の行列を設定します。 このメソッドによって線形変換の行列の設定が行われた場合は、 スプライトの矩形の中心を原点として線形変換を行った後に setLocation(int, int) メソッドによって設定された位置に表示します。 その際、setFlipMode(int) メソッドによる反転表示の設定は無効になります。 ただし、setFlipMode(int) メソッドによる設定はこのメソッドによる設定とは独立してインスタンスに保持されており、 後で setRotation(null) を呼び出した場合は以前の setFlipMode(int) メソッドによる反転表示の設定が有効となります。
デフォルトでは線形変換の行列は設定されていません。 線形変換の行列の設定を行った後に設定を無効にするには、 引数に null を指定してこのメソッドを呼び出します。

スプライトオブジェクトに設定されたイメージオブジェクトの (sx, sy) - (sx + swidth, sy + sheight) の矩形領域をスプライトとして扱うとき、 イメージ上のその矩形領域内の座標 (x, y) の画素は、 setLocation(int, int) メソッドによって設定された表示位置を (dx, dy) とすると、 以下のような行列演算によって求められる座標 (x', y') に描画されます。

 [ x']      1   [ m00 m01   0  ] [ x - (sx + swidth  / 2) ]   [ dx + swidth  / 2 ]
 [ y'] = ------ [ m10 m11   0  ] [ y - (sy + sheight / 2) ] + [ dy + sheight / 2 ]
 [ 1 ]    4096  [  0   0  4096 ] [ 1                      ]   [ 0                ]
 
このメソッドの引数には m00〜m11 の四つの要素の値を指定します。

このメソッドでは内部で引数に渡された配列の値をコピーする処理が行われるため、 線形変換の行列の設定後に引数に渡された配列の値を書換えても、 変更は反映されません。

パラメータ:
lt - 2次元の線形変換の行列の要素を指定します。 int 配列の先頭から順に m00, m01, m10, m11 の値を設定します。 配列の長さが 5 以上の場合、第 4 要素以降の値は無視されます。
例外:
ArrayIndexOutOfBoundsException - 引数 lt の長さが 4 未満の場合に発生します。


NTT DoCoMo,Inc.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

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