概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## kinugasa.ui
クラス MessageWindow

    java.lang.Object
      kinugasa.object.Sprite
          kinugasa.object.BasicSprite
              kinugasa.ui.MessageWindow

すべての実装されたインタフェース:
  java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<Sprite>, Controllable, Drawable, Shapeable

直系の既知のサブクラス:
  InputMessageWindow, SelectableMessageWindow

    public class MessageWindow

extends BasicSprite

kinugasa : MessageWindow : 複数のテキストラベルを表示するためのコンポーネントです.
メッセージウインドウは専用の描画アルゴリズムによって複数の(0個以上の）ラベルを適切な位置に描画します.
ウインドウ内のすべてのラベルは設定されているタイムカウンタによって1行ずつ表示させることができます.
ウインドウのインスタンスは表示する分だけ必要です.
通常は、メッセージを表示するためのウインドウを一つ用意し、 内部のテキストを置き換えて表示します.
ウインドウのサイズやウインドウ内に含まれる(含むことができる）ラベルの数は任意です.これらの値は 自動調節されません.ウインドウの領域から出た行のラベルはウインドウの外に表示されます。
ウインドウは一つの「アイコン」をSpriteインスタンスとして持つことができます.
アイコンはisAllTextViibleがtrueを返すときだけ このクラス内で自動的に描画されます.ただしウインドウモデルによってアイコンに適切なパラメータが 設定されている場合に限ります.
ウインドウにアイコンを設定すると、モデルのinitIconメソッドが自動的に呼び出されます.
アイコンの表示状態を変更したい場合は、オーバーライドできます.
ラベルの実際の描画位置はウインドウモデルによって決められます.
ウインドウ内に表示するテキストは、単一のStringインスタンスから構築することができます.
各行はこのクラスのseparatorフィールドによって分割された部分文字列が使用されます.
separatorはデフォルトでは"\n"が設定されています.
しかし、"\n"はファイルから読み込めないため、ファイルから読み込んだデータをもとにウインドウを構築する場合は 置換した文字列を使用するか、セパレータ文字を変更してください.
このクラスのクローニングではラベルの配列をクローンしません(シャローコピー).

バージョン:
  1.0.0 - 2012/07/16_15:36:35.
作成者:
  Dra0211
関連項目:
  直列化された形式

フィールドの概要
`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`

フィールドの詳細

### separator

    private static java.lang.String separator

  単一のStringインスタンスからメッセージを構築する場合に、行を区切る文字です. デフォルトでは"\n"に設定されています.

### serialVersionUID

    private static final long serialVersionUID

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

### labels

    protected TextLabel[] labels

  ウインドウが管理するラベル.

### windowModel

    private MessageWindowModel windowModel

  ウインドウの描画アルゴリズム.

### icon

    private Sprite icon

  テキスト送りアイコン.

コンストラクタの詳細

### MessageWindow

    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の場合に投げられる. 空のウインドウを表示するには空の文字列""をもとに空のラベルを作成する必要があります.

### MessageWindow

    public MessageWindow(float x,
                         float y,
                         float width,
                         float height,
                         MessageWindowModel wm,
                         LabelModel lm,
                         java.lang.String text)
                  throws java.lang.NullPointerException

  Stringインスタンスをseparatorで分割した文字列を使用して適当なラベルを構築し、 メッセージウインドウに設定します. このコンストラクタで設定されたラベルの可視文字インデックスには文字IDX=文字列の長さが設定されます. したがって、ウインドウ内のすべてのテキストは 最初から表示されています.

  パラメータ:
    `x` - ウインドウのX座標.
    `y` - ウインドウのY座標.
    `width` - ウインドウの幅.
    `height` - ウインドウの高さ.
    `wm` - ウインドウのモデル.
    `lm` - ラベルに適用するラベルモデル.
    `text` - ウインドウに設定する文字列.separatorによって分割される.
  例外:
    `java.lang.NullPointerException` - ラベルがnullの場合に投げられる. 空のウインドウを表示するには空の文字列""をもとに空のラベルを作成する必要があります.

### MessageWindow

    public MessageWindow(float x,
                         float y,
                         float width,
                         float height,
                         MessageWindowModel wm,
                         LabelModel lm,
                         TimeCounter tc,
                         java.lang.String text)
                  throws java.lang.NullPointerException

  Stringインスタンスをseparatorで分割した文字列を使用して適当なラベルを構築し、 メッセージウインドウに設定します. このコンストラクタで設定されたラベルの可視文字インデックスは0に設定されます.
  したがって、ウインドウ内のすべてのテキストは 指定したタイムカウンタを使用して一文字ずつ表示させることができます.

  パラメータ:
    `x` - ウインドウのX座標.
    `y` - ウインドウのY座標.
    `width` - ウインドウの幅.
    `height` - ウインドウの高さ.
    `wm` - ウインドウのモデル.
    `lm` - ラベルに適用するラベルモデル.
    `tc` - 全てのラベルに適用されるタイムカウンタ.実際にはこのインスタンスのクローンが使用される.
    `text` - ウインドウに設定する文字列.separatorによって分割される.
  例外:
    `java.lang.NullPointerException` - ラベルがnullの場合に投げられる. 空のウインドウを表示するには空の文字列""をもとに空のラベルを作成する必要があります.

メソッドの詳細

### getSeparator

    public static java.lang.String getSeparator()

  区切り文字を取得します. この値はデフォルトでは"\n"を返します.

  戻り値:
    ラベル構築時に使用されるセパレータ.

### setSeparator

    public static void setSeparator(java.lang.String separator)

  区切り文字を設定します.

  パラメータ:
    `separator` - ラベル構築時に使用されるセパレータ.

### draw

    public void draw(java.awt.Graphics2D g)

  メッセージウインドウを描画します. 描画では、まず、ウインドウ自体の可視状態の判定が行われます.
  次にウインドウモデルによってウインドウの下地およびラベルが描画されます.
  最後にアイコンが設定されている場合はアイコンを描画します.

  定義:
    インタフェース `Drawable` 内の `draw`
  定義:
    クラス `BasicSprite` 内の `draw`
  パラメータ:
    `g` - 書き込むグラフィックスコンテキスト.

### setText

    public void setText(java.lang.String text,
                        TimeCounter tc)

  ウインドウ内のテキストを更新します. このメソッドでは、このウインドウにラベルが存在する場合には、そのラベルのモデルを使用して 新しいテキストを作成します.
  ラベルが存在しない場合にはSTANDARD_MODELが使用されます.
  このメソッドはsetText(String, TimeCounter, LabelModel)を使用します。

  パラメータ:
    `text` - 設定する文字列.separatorによって分割される.
    `tc` - 全てのラベルに設定するタイムカウンタのマスタ.実際にはクローンが使用される.

### setText

    public void setText(java.lang.String text,
                        LabelModel lm)

  ウインドウ内のテキストを更新します. このメソッドでは、新しいラベルのタイムカウンタにはTRUE_MODELが可視文字IDXには文字列の長さが設定されます.
  したがって、このメソッドで新しい文字列を設定すると、それらのテキストは最初からすべてが表示されています.

  パラメータ:
    `text` - 設定する文字列.separatorによって分割される.
    `lm` - 新しいラベルに設定するモデル.

### setText

    public void setText(java.lang.String text,
                        TimeCounter tc,
                        LabelModel lm)

  ウインドウ内のテキストを更新します. このメソッドでは、新しいラベルの可視文字IDXには0が設定されます.
  したがって、このメソッドで新しい文字列を設定すると、タイムカウンタtcおよびモデルlmを使用して 一文字ずつテキストを表示させることができます.

  パラメータ:
    `text` - 設定する文字列.separatorによって分割される.
    `tc` - 全てのラベルに設定するタイムカウンタのマスタ.実際にはクローンが使用される.
    `lm` - 新しいラベルに設定するモデル.

### setText

    public void setText(java.lang.String text)

  現在表示中のラベルと同じ設定でsetText(String, TimeCounter, LabelModel)を呼び出す簡易メソッドです.

  パラメータ:
    `text` - 次に表示するテキストを指定します。

### setLabels

    public final void setLabels(TextLabel[] labels)

  新しいラベルを設定し、それらの初期設定を行います. 初期設定はウインドウモデルによって行われます.

  パラメータ:
    `labels` - 新しいラベルのインスタンス.

### getLabels

    public TextLabel[] getLabels()

  このウインドウに含まれるすべてのラベルを取得します. このメソッドで取得したラベルに行われた操作は、ウインドウに反映されます.

  戻り値:
    このウインドウに含まれるラベル.

### getLabel

    public TextLabel getLabel(int idx)
                       throws java.lang.ArrayIndexOutOfBoundsException

  このウインドウ内の指定したインデックスを持つラベルを取得します.

  パラメータ:
    `idx` - インデックス.通常は0ベースの行番号となる.
  戻り値:
    指定したインデックスのラベル.
  例外:
    `java.lang.ArrayIndexOutOfBoundsException` - 不正な要素数の場合に投げられる.

### setWindowModel

    public void setWindowModel(MessageWindowModel windowModel)

  ウインドウのモデルを変更します. ウインドウのモデルを変更すると、アイコンおよびラベルの初期設定が行われます.

  パラメータ:
    `windowModel` - 新しいモデル.

### getWindowModel

    public MessageWindowModel getWindowModel()

  このウインドウが使用しているモデルを取得します.

  戻り値:
    ウインドウのモデル.

### isAllTextVisible

    public boolean isAllTextVisible()

  このウインドウに含まれる全てのラベルのisAllVisibleがtrueを返すかどうかを調べます. このメソッドは「テキスト変更のタイミング検査」に使用できます.

  戻り値:
    全てのラベルのすべての文字が表示されている場合にtrueを返す.

### skip

    public boolean skip()

  このウインドウが「テキストを表示中」であって「表示が完了していない」場合に全ての文字列を表示します. このメソッドは一文字ずつ表示中のテキストをプレイヤーの操作によってすべて表示するために使用します.

  戻り値:
    このメソッドの操作によってすべての文字が表示された場合はtrueを返す.

### allText

    public void allText()

  ウインドウ内のすべてのラベルのallCharをコールします.

### getIcon

    public Sprite getIcon()

  このウインドウに設定されているアイコンを取得します.

  戻り値:
    このウインドウに設定されているアイコン.設定されていない場合はnullを返す.

### setIcon

    public MessageWindow setIcon(Sprite icon)

  このウインドウに新しいアイコンを設定します. アイコンを設定するとウインドウモデルのinitIconメソッドがコールされます.
  このメソッドはウインドウのインスタンス化と同時に使用できるようになっています.

  パラメータ:
    `icon` - 設定するアイコン.
  戻り値:
    このウインドウのインスタンスが返る.

### clone

    public MessageWindow clone()

  クラス `BasicSprite` の記述:
  このスプライトの複製を作成します. このメソッドでは、全てのフィールドをクローニングします.
  このメソッドはサブクラスで適切にオーバーライドしてください.

  オーバーライド:
    クラス `BasicSprite` 内の `clone`
  戻り値:
    このスプライトと同じ設定の新しいインスタンス.

### setSound

    public void setSound(Sound a)

  このメッセージウインドウが持つすべてのラベルにサウンドを設定します.

  パラメータ:
    `a` - 1文字表示するたびにこのサウンドファイルが再生されます。

### move

    public void move()

  クラス `BasicSprite` の記述:
  オブジェクトに設定されているパラメータおよびアルゴリズムを使用して移動します.

  オーバーライド:
    クラス `BasicSprite` 内の `move`

### move

    public void move(MovingModel m)

  クラス `BasicSprite` の記述:
  指定のアルゴリズムを使用して移動します.

  オーバーライド:
    クラス `BasicSprite` 内の `move`
  パラメータ:
    `m` - 移動方法.

### move

    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でない場合はこの領域から出てはならない.
  戻り値:
    移動後のオブジェクトがs内に存在する場合はtrueを、sから出る(contains()がfalse)ため、移動できなかった場合はfalseを返す.

### move

    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でない場合はこの領域から出てはならない.
  戻り値:
    移動後のオブジェクトがs内に存在する場合はtrueを、sから出る(contains()がfalse)ため、移動できなかった場合はfalseを返す.

概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド