|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.microedition.lcdui.game.Layer javax.microedition.lcdui.game.TiledLayer
public class TiledLayer
TiledLayer
は、1セットのタイル・イメージで満たすことができるセルのグリッドで構成された視覚要素です。
このクラスは、大きい仮想のレイヤーを非常に大きな Image
を必要とせず作成できるようにするためのものです。
このテクニックは、一般的に非常に大きいスクロールする背景を作成する必要のある、2Dゲーム・プラットフォームで用いられます。
可変モードあるいは不変モードであるかもしれない単一の Image
オブジェクトは、TiledLayer
のセルを敷き詰めるために使用するタイルを提供します。
Image
は一連の等しいサイズのタイルに分割します;
タイルのサイズは Image
と共に指定します。
以下の図で示すように、ゲーム開発者にとって最も使いやすい、いくつかの異なる割付に同じタイル・セットを格納することができます。
それぞれのタイルには固有のインデックス番号が割り当てられます。
1
のインデックスが Image
の左上角に位置するタイルに割り当てます。
そして、同じ行優先で残りのタイルに付番します(インデックス・リストは最初の行、次の行、そしてその先へ向かって割り当てます)。
これらのタイルは固定タイルとみなし、それに関連しているタイルとイメージ・データとの関係は固定です。
TiledLayer
のインスタンスが作成されるとき、固定タイル・セットを作成します;
また、いつでも setStaticTileSet(javax.microedition.lcdui.Image, int, int)
メソッドを使用することで、それを更新することができます。
さらに、固定タイル・セットに加えて、開発者はいくつかのアニメーション・タイルを定義できます。 アニメーション・タイルは、動的に固定タイルに関連する仮想タイルです。 アニメーション・タイルの見た目は、それが現在関連する固定タイルのものになります。
アニメーション・タイルは createAnimatedTile(int)
を使用することで作成します。このメソッドは新しいタイルで使用するためのインデックスを返します。
アニメーション・タイルのインデックスは、常に負数で -1
から始まる連続する数値です。
一度作成すると、setAnimatedTile(int, int)
メソッドを使用することで、アニメーション・タイルに関連する固定タイルを変更することができます。
TiledLayer
のグリッドは等しい大きさで区切られたセルで作られます。
グリッドの行と列の数はコンストラクタで指定します。そしてセルの大きさはタイルのサイズによって決定します。
それぞれのセルに関する内容はタイル・インデックスによって指定します。
正数のタイル・インデックスは固定タイルに対する参照を、そして負数のタイル・インデックスはアニメーション・タイルに対する参照を意味します。
タイル・インデックス 0
は、セルが空であることを意味します。
空のセルは完全に透明であり、TiledLayer
はその領域に何も描画しません。
デフォルトで、全てのセルにタイル・インデックス 0
を設定します。
setCell(int, int, int)
および fillCells(int, int, int, int, int)
を使用することで、セルに関する内容を変更することができます。
いくつかのセルが同じタイルを格納することができます;
しかし、単一のセルは1個以上のタイルを格納することはできません。
以下の例は TiledLayer
を使用することで、どのように簡単に背景を作成するのかを例示します。
この例では、水の領域は初めに固定タイル 5
に関連する -1
のインデックスを持つアニメーション・タイルで満たします。
水の全領域は、setAnimatedTile
(-1, 7)
を使用することで関連する固定タイルを変更することで、アニメーションさせることができます。
TiledLayer
のレンダリングマニュアルで paint
メソッドを呼び出すことによって TiledLayer
をレンダリングすることができます。
また、LayerManager
オブジェクトを使用することで自動的にレンダリングすることができます。
paint
メソッドは Graphics
オブジェクトのクリップ領域全体に TiledLayer
のレンダリングを試みます;
Graphics
オブジェクトの原点に相対する現在位置 (x, y)
を TiledLayer
の左上角としてレンダリングします。
レンダリングされる領域は、Graphics
オブジェクトにクリップ領域を設定することで、それにしたがって制御することができます。
コンストラクタの概要 | |
---|---|
TiledLayer(int columns,
int rows,
Image image,
int tileWidth,
int tileHeight)
新しい TiledLayer を作成します。 |
メソッドの概要 | |
---|---|
int |
createAnimatedTile(int staticTileIndex)
新しいアニメーション・タイルを作成し、新しいアニメーション・タイルを参照するインデックスを返します。 |
void |
fillCells(int col,
int row,
int numCols,
int numRows,
int tileIndex)
指定したタイルでセルの領域を埋めます。 |
int |
getAnimatedTile(int animatedTileIndex)
アニメーション・タイルが参照しているタイルを取得します。 |
int |
getCell(int col,
int row)
セルの内容を取得します。 |
int |
getCellHeight()
単一セルの高さをピクセル単位で取得します。 |
int |
getCellWidth()
単一セルの幅をピクセル単位で取得します。 |
int |
getColumns()
TiledLayer グリッドの列数を取得します。 |
int |
getRows()
TiledLayer グリッドの行数を取得します。 |
void |
paint(Graphics g)
TiledLayer を描画します。 |
void |
setAnimatedTile(int animatedTileIndex,
int staticTileIndex)
指定した固定タイルをアニメーション・タイルに対応させます。 |
void |
setCell(int col,
int row,
int tileIndex)
セルの内容を設定します。 |
void |
setStaticTileSet(Image image,
int tileWidth,
int tileHeight)
固定タイルのセットを変更します。 |
クラス 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 TiledLayer(int columns, int rows, Image image, int tileWidth, int tileHeight)
新しい TiledLayer
を作成します。
TiledLeayer
のグリッドは、セルの高さ rows
とセルの幅 columns
となります。
グリッドの全てのセルは初めに空(すなわち、全てタイル・インデックス 0
)に設定します。
setCell(int, int, int)
および fillCells(int, int, int, int, int)
を使用することでグリッドの内容を変更することができます。
TiledLayer
に設定される固定タイルは tileWidth
×tileHeight
の大きさの各タイルを持っている指定された Image
から作成します。
ソース・イメージの幅はタイルの幅の整数倍でなければなりません。同様に、ソース・イメージの高さはタイルの高さの整数倍でなければなりません;
そうでなければ、IllegalArgumentException
を throw します;
setStaticTileSet(javax.microedition.lcdui.Image, int, int)
を使用することで固定タイル・セット全体を変更することができます。
メモリを使用し時間がかかるため、これらのメソッドは控えめに使用すべきです。
タイルの見た目をアニメーションさせるためには、可能であれば常にアニメーション・タイルを代わりに用いるべきです。
columns
- TiledLayer
の幅を表すセルの数を渡します。rows
- TiledLayer
の高さを表すセルの数を渡します。image
- 固定タイルのセットを作成するために使用する Image
を渡します。tileWidth
- 単一のタイルの幅をピクセル数で渡します。tileHeight
- 単一のタイルの高さをピクセル数で渡します。
NullPointerException
- パラメータ image
が null
の場合に throw します。
IllegalArgumentException
- パラメータ rows
または columns
が1未満か、image
の幅が tileWidth
の整数倍ではないか、image
の高さが tileHeight
の整数倍ではない場合に throw します。メソッドの詳細 |
---|
public int createAnimatedTile(int staticTileIndex)
新しいアニメーション・タイルを作成し、新しいアニメーション・タイルを参照するインデックスを返します。
それは、初めに指定されたタイル・インデックス(固定タイルか 0
のどちらか)に対応します。
アニメーション・タイルのためのインデックスは常に負数です。
最初のアニメーション・タイルにはインデックス -1
、次は -2
などのような割り当てを行います。
staticTileIndex
- 対応するタイルのインデックスを渡します(0
か有効な固定タイルのインデックスでなければなりません)。
IndexOutOfBoundsException
- パラメータ staticTileIndex
が無効な場合に throw します。public void setAnimatedTile(int animatedTileIndex, int staticTileIndex)
指定した固定タイルをアニメーション・タイルに対応させます。
animatedTileIndex
- アニメーション・タイルのインデックスを渡します。staticTileIndex
- 対応させるタイルのインデックス(0
か有効な固定タイルのインデックスでなければなりません)を渡します。
IndexOutOfBoundsException
- パラメータ animatedTileIndex
または staticTileIndex
が無効ならば throw します。getAnimatedTile(int)
public int getAnimatedTile(int animatedTileIndex)
アニメーション・タイルが参照しているタイルを取得します。
現在アニメーション・タイルに対応しているタイルのインデックスを返します。
animatedTileIndex
- アニメーション・タイルのインデックスを渡します。
IndexOutOfBoundsException
- パラメータ animatedTileIndex
が無効な場合に throw します。setAnimatedTile(int, int)
public void setCell(int col, int row, int tileIndex)
セルの内容を設定します。
内容は固定タイルのインデックス、アニメーション・タイルのインデックスを設定することができます。またはそれは空(インデックス 0
)にすることもできます。
col
- 設定するセルの列を渡します。row
- 設定するセルの行を渡します。tileIndex
- セルに置くタイルのインデックスを渡します。
IndexOutOfBoundsException
- パラメータ tileIndex
に対応するタイルのインデックスがないか TiledLayer
のグリッドの境界外を col
または row
が指しているなら throw します。getCell(int, int)
,
fillCells(int, int, int, int, int)
public int getCell(int col, int row)
セルの内容を取得します。
現在表示対象となるセルの中の、固定タイルまたはアニメーション・タイルのインデックスを取得します。
セルが空ならば、インデックスとして 0
を返します。
col
- チェックするセルの列を渡します。row
- チェックするセルの列を渡します。
IndexOutOfBoundsException
- TiledLayer
グリッドの境界外をパラメータ col
または row
が指している場合に throw します。setCell(int, int, int)
,
fillCells(int, int, int, int, int)
public void fillCells(int col, int row, int numCols, int numRows, int tileIndex)
指定したタイルでセルの領域を埋めます。
セルは固定タイルのインデックス、アニメーション・タイルのインデックスで埋めることができます。またはそれは空(インデックス 0
)にすることもできます。
col
- 指定領域の左上セルの列を渡します。row
- 指定領域の左上セルの行を渡します。numCols
- 指定領域の列数を渡します。numRows
- 指定領域の行数を渡します。tileIndex
- 指定した領域の全てのセルに置くタイルのインデックスを渡します。
IndexOutOfBoundsException
- パラメータによって指定された領域が TiledLayer
グリッドの境界を越えているか、パラメータ numCols
または numRows
がゼロ未満か、パラメータ tileIndex
に対応するタイルのインデックスがないならば throw します。setCell(int, int, int)
,
getCell(int, int)
public final int getCellWidth()
単一セルの幅をピクセル単位で取得します。
TiledLayer
グリッドの単一セルの幅をピクセル数で返します。public final int getCellHeight()
単一セルの高さをピクセル単位で取得します。
TiledLayer
グリッドの単一セルの高さをピクセル数で返します。public final int getColumns()
TiledLayer
グリッドの列数を取得します。
TiledLayer
の全幅ピクセル数は Layer.getWidth()
を呼び出すことによって取得することができます。
TiledLayer
グリッドの列における幅を返します。public final int getRows()
TiledLayer
グリッドの行数を取得します。
TiledLayer
の全高ピクセル数は Layer.getHeight()
を呼び出すことによって取得することができます。
TiledLayer
グリッドの行における高さを返します。public void setStaticTileSet(Image image, int tileWidth, int tileHeight)
固定タイルのセットを変更します。
現在の固定タイルのセットは新しいタイルのセットで置き換えられます。
タイルがイメージからどのように作成されるかに関してはコンストラクタ TiledLayer(int, int, Image, int, int)
を参照してください。
新しい固定タイルのセットが以前の固定タイルと同じかそれ以上のタイルを設定すると、アニメーション・タイルとセルの内容は保持します。
そうでなければ、グリッドに関連する内容はクリア(全てのセルにインデックス 0
を格納)され、全てのアニメーション・タイルは削除します。
image
- 固定タイルのセットを作成するために使用する Image
を渡します。tileWidth
- 単一のタイルの幅をピクセル数で渡します。tileHeight
- 単一のタイルの高さをピクセル数で渡します。
NullPointerException
- パラメータ image
が null
の場合に throw します。
IllegalArgumentException
- パラメータ tileHeight
または tileWidth
が 1
未満か、image
の幅が tileWidth
の整数倍ではないか、image
の高さが tileHeight
の整数倍でなければ throw します。public final void paint(Graphics g)
TiledLayer
を描画します。
全ての TiledLayer
は Graphics
オブジェクトのクリップ領域にしたがってレンダリングします。
Graphics
オブジェクトの原点に相対する TiledLayer
の現在の位置を TiledLayer
の左上角としてレンダリングします。
Layer.getX()
と Layer.getY()
を呼び出すことで TiledLayer
の左上角の現在の位置を取得できます。
クリップ領域、および/または、転移の適切な使用によって、TiledLayer
の任意の領域をレンダリングすることが可能になります。
TiledLayer
の Image
が可変モードであるなら、TiledLayer
は現在の内容を使用してレンダリングを行います。
Layer
内の paint
g
- TiledLayer
を描画する Graphics
オブジェクトを渡します。
パラメータ g
が 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 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |