|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectkinugasa.object.Sprite
kinugasa.object.BasicSprite
kinugasa.ui.MessageWindow
public class MessageWindow
kinugasa : MessageWindow : 複数のテキストラベルを表示するためのコンポーネントです.
メッセージウインドウは専用の描画アルゴリズムによって複数の(0個以上の)ラベルを適切な位置に描画します.
ウインドウ内のすべてのラベルは設定されているタイムカウンタによって1行ずつ表示させることができます.
ウインドウのインスタンスは表示する分だけ必要です.
通常は、メッセージを表示するためのウインドウを一つ用意し、
内部のテキストを置き換えて表示します.
ウインドウのサイズやウインドウ内に含まれる(含むことができる)ラベルの数は任意です.これらの値は
自動調節されません.ウインドウの領域から出た行のラベルはウインドウの外に表示されます。
ウインドウは一つの「アイコン」をSpriteインスタンスとして持つことができます.
アイコンはisAllTextViibleがtrueを返すときだけ
このクラス内で自動的に描画されます.ただしウインドウモデルによってアイコンに適切なパラメータが
設定されている場合に限ります.
ウインドウにアイコンを設定すると、モデルのinitIconメソッドが自動的に呼び出されます.
アイコンの表示状態を変更したい場合は、オーバーライドできます.
ラベルの実際の描画位置はウインドウモデルによって決められます.
ウインドウ内に表示するテキストは、単一のStringインスタンスから構築することができます.
各行はこのクラスのseparatorフィールドによって分割された部分文字列が使用されます.
separatorはデフォルトでは"\n"が設定されています.
しかし、"\n"はファイルから読み込めないため、ファイルから読み込んだデータをもとにウインドウを構築する場合は
置換した文字列を使用するか、セパレータ文字を変更してください.
このクラスのクローニングではラベルの配列をクローンしません(シャローコピー).
フィールドの概要 | |
---|---|
private Sprite |
icon
テキスト送りアイコン. |
protected TextLabel[] |
labels
ウインドウが管理するラベル. |
private static java.lang.String |
separator
単一のStringインスタンスからメッセージを構築する場合に、行を区切る文字です. |
private static long |
serialVersionUID
|
private MessageWindowModel |
windowModel
ウインドウの描画アルゴリズム. |
コンストラクタの概要 | |
---|---|
MessageWindow(float x,
float y,
float width,
float height,
MessageWindowModel wm,
LabelModel lm,
java.lang.String text)
Stringインスタンスをseparatorで分割した文字列を使用して適当なラベルを構築し、 メッセージウインドウに設定します. |
|
MessageWindow(float x,
float y,
float width,
float height,
MessageWindowModel wm,
LabelModel lm,
TimeCounter tc,
java.lang.String text)
Stringインスタンスをseparatorで分割した文字列を使用して適当なラベルを構築し、 メッセージウインドウに設定します. |
|
MessageWindow(float x,
float y,
float width,
float height,
MessageWindowModel wm,
TextLabel... label)
テキストラベルを指定して、新しいメッセージウインドウを構築します. |
メソッドの概要 | |
---|---|
void |
allText()
ウインドウ内のすべてのラベルのallCharをコールします. |
MessageWindow |
clone()
このスプライトの複製を作成します. |
void |
draw(java.awt.Graphics2D g)
メッセージウインドウを描画します. |
Sprite |
getIcon()
このウインドウに設定されているアイコンを取得します. |
TextLabel |
getLabel(int idx)
このウインドウ内の指定したインデックスを持つラベルを取得します. |
TextLabel[] |
getLabels()
このウインドウに含まれるすべてのラベルを取得します. |
static java.lang.String |
getSeparator()
区切り文字を取得します. |
MessageWindowModel |
getWindowModel()
このウインドウが使用しているモデルを取得します. |
boolean |
isAllTextVisible()
このウインドウに含まれる全てのラベルのisAllVisibleがtrueを返すかどうかを調べます. |
void |
move()
オブジェクトに設定されているパラメータおよびアルゴリズムを使用して移動します. |
boolean |
move(float xValue,
float yValue,
java.awt.Shape s)
入力デバイスからの値によって、オブジェクトを移動します. |
void |
move(MovingModel m)
指定のアルゴリズムを使用して移動します. |
boolean |
move(java.awt.geom.Point2D.Float p,
java.awt.Shape s)
入力デバイスからの値によって、オブジェクトを移動します. |
MessageWindow |
setIcon(Sprite icon)
このウインドウに新しいアイコンを設定します. |
void |
setLabels(TextLabel[] labels)
新しいラベルを設定し、それらの初期設定を行います. |
static void |
setSeparator(java.lang.String separator)
区切り文字を設定します. |
void |
setSound(Sound a)
このメッセージウインドウが持つすべてのラベルにサウンドを設定します. |
void |
setText(java.lang.String text)
現在表示中のラベルと同じ設定でsetText(String, TimeCounter, LabelModel)を呼び出す簡易メソッドです. |
void |
setText(java.lang.String text,
LabelModel lm)
ウインドウ内のテキストを更新します. |
void |
setText(java.lang.String text,
TimeCounter tc)
ウインドウ内のテキストを更新します. |
void |
setText(java.lang.String text,
TimeCounter tc,
LabelModel lm)
ウインドウ内のテキストを更新します. |
void |
setWindowModel(MessageWindowModel windowModel)
ウインドウのモデルを変更します. |
boolean |
skip()
このウインドウが「テキストを表示中」であって「表示が完了していない」場合に全ての文字列を表示します. |
クラス kinugasa.object.BasicSprite から継承されたメソッド |
---|
getAngle, getMovingModel, getMovingModel, getNextCenter, getNextLocation, getSpeed, getVector, setAngle, setMovingModel, setSpeed, setVector, toString |
クラス kinugasa.object.Sprite から継承されたメソッド |
---|
compareTo, contains, getBounds, getCenter, getCenterX, getCenterY, getHeight, getHitBounds, getLocation, getPersonalCenter, getPersonalCenterX, getPersonalCenterY, getSize, getStatus, getWidth, getX, getY, getZ, isExist, isVisible, setBounds, setBounds, setBounds, setExist, setHeight, setLocation, setLocation, setSize, setSize, setStatus, setVisible, setWidth, setX, setY, setZ, update, updateCenter, updatePersonalCenter |
クラス java.lang.Object から継承されたメソッド |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
---|
private static java.lang.String separator
private static final long serialVersionUID
protected TextLabel[] labels
private MessageWindowModel windowModel
private Sprite icon
コンストラクタの詳細 |
---|
public MessageWindow(float x, float y, float width, float height, MessageWindowModel wm, TextLabel... label) throws java.lang.NullPointerException
x
- ウインドウのX座標.y
- ウインドウのY座標.width
- ウインドウの幅.height
- ウインドウの高さ.wm
- ウインドウのモデル.label
- ラベルの実装.java.lang.NullPointerException
- ラベルがnullの場合に投げられる.
空のウインドウを表示するには空の文字列""をもとに空のラベルを作成する必要があります.public MessageWindow(float x, float y, float width, float height, MessageWindowModel wm, LabelModel lm, java.lang.String text) throws java.lang.NullPointerException
x
- ウインドウのX座標.y
- ウインドウのY座標.width
- ウインドウの幅.height
- ウインドウの高さ.wm
- ウインドウのモデル.lm
- ラベルに適用するラベルモデル.text
- ウインドウに設定する文字列.separatorによって分割される.java.lang.NullPointerException
- ラベルがnullの場合に投げられる.
空のウインドウを表示するには空の文字列""をもとに空のラベルを作成する必要があります.public MessageWindow(float x, float y, float width, float height, MessageWindowModel wm, LabelModel lm, TimeCounter tc, java.lang.String text) throws java.lang.NullPointerException
x
- ウインドウのX座標.y
- ウインドウのY座標.width
- ウインドウの幅.height
- ウインドウの高さ.wm
- ウインドウのモデル.lm
- ラベルに適用するラベルモデル.tc
- 全てのラベルに適用されるタイムカウンタ.実際にはこのインスタンスのクローンが使用される.text
- ウインドウに設定する文字列.separatorによって分割される.java.lang.NullPointerException
- ラベルがnullの場合に投げられる.
空のウインドウを表示するには空の文字列""をもとに空のラベルを作成する必要があります.メソッドの詳細 |
---|
public static java.lang.String getSeparator()
public static void setSeparator(java.lang.String separator)
separator
- ラベル構築時に使用されるセパレータ.public void draw(java.awt.Graphics2D g)
Drawable
内の draw
BasicSprite
内の draw
g
- 書き込むグラフィックスコンテキスト.public void setText(java.lang.String text, TimeCounter tc)
text
- 設定する文字列.separatorによって分割される.tc
- 全てのラベルに設定するタイムカウンタのマスタ.実際にはクローンが使用される.public void setText(java.lang.String text, LabelModel lm)
text
- 設定する文字列.separatorによって分割される.lm
- 新しいラベルに設定するモデル.public void setText(java.lang.String text, TimeCounter tc, LabelModel lm)
text
- 設定する文字列.separatorによって分割される.tc
- 全てのラベルに設定するタイムカウンタのマスタ.実際にはクローンが使用される.lm
- 新しいラベルに設定するモデル.public void setText(java.lang.String text)
text
- 次に表示するテキストを指定します。public final void setLabels(TextLabel[] labels)
labels
- 新しいラベルのインスタンス.public TextLabel[] getLabels()
public TextLabel getLabel(int idx) throws java.lang.ArrayIndexOutOfBoundsException
idx
- インデックス.通常は0ベースの行番号となる.java.lang.ArrayIndexOutOfBoundsException
- 不正な要素数の場合に投げられる.public void setWindowModel(MessageWindowModel windowModel)
windowModel
- 新しいモデル.public MessageWindowModel getWindowModel()
public boolean isAllTextVisible()
public boolean skip()
public void allText()
public Sprite getIcon()
public MessageWindow setIcon(Sprite icon)
icon
- 設定するアイコン.public MessageWindow clone()
BasicSprite
の記述:
BasicSprite
内の clone
public void setSound(Sound a)
a
- 1文字表示するたびにこのサウンドファイルが再生されます。public void move()
BasicSprite
の記述:
BasicSprite
内の move
public void move(MovingModel m)
BasicSprite
の記述:
BasicSprite
内の move
m
- 移動方法.public boolean move(java.awt.geom.Point2D.Float p, java.awt.Shape s)
Controllable
の記述:
Controllable
内の move
BasicSprite
内の move
p
- -1.0~1.0の間のXおよびY軸の入力値.キー操作では-1.0または1.0、ゲームパッドを使用すると可変の値が送信される.s
- このオブジェクトが移動可能な領域.nullでない場合はこの領域から出てはならない.public boolean move(float xValue, float yValue, java.awt.Shape s)
Controllable
の記述:
Controllable
内の move
BasicSprite
内の move
xValue
- -1.0~1.0の間の入力値.キー操作では-1.0または1.0、ゲームパッドを使用すると可変の値が送信される.yValue
- -1.0~1.0の間の入力値.キー操作では-1.0または1.0、ゲームパッドを使用すると可変の値が送信される.s
- このオブジェクトが移動可能な領域.nullでない場合はこの領域から出てはならない.
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |