kinugasa.util

## クラス FrameTimeCounter

- java.lang.Object
- - kinugasa.object.Model
  - - kinugasa.util.TimeCounter
    - - kinugasa.util.FrameTimeCounter

- すべての実装されたインタフェース:
    java.io.Serializable, java.lang.Cloneable, Statable

      public class FrameTimeCounter
      extends TimeCounter

  複数の、呼び出し回数ベースの待機時間を順番に評価するTimeCounterの実装です.
  このクラスは、TimeCounterの基本の実装です。たとえば、STGにおける射撃間隔の制御などに使用します。
  関連項目:
    直列化された形式

- - ### フィールドのサマリー

    - ### クラスから継承されたフィールド kinugasa.util.TimeCounter

      `FALSE, TRUE`

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `FrameTimeCounter(ArrayIndexModel index, int... waitTime)` インデックスモデルと待ち時間を指定して、新しいカウンタを作成します.
    `FrameTimeCounter(int... waitTime)` 待ち時間を指定して、新しいカウンタを作成します.
    `FrameTimeCounter(int speed, ArrayIndexModel index, int... waitTime)` 速度、インデックスモデル、待ち時間を指定して新しいカウンタを作成します.
    `FrameTimeCounter(int speed, int[] waitTime)` 速度と待ち時間を指定して、新しいカウンタを作成します.

  - ### メソッドのサマリー

    All Methods Instance Methods Concrete Methods
    修飾子とタイプ | メソッドと説明
    --- | ---
    `FrameTimeCounter` | `clone()` このモデルのクローンを返します.
    `boolean` | `equals(java.lang.Object obj)`
    `ArrayIndexModel` | `getIndex()`
    `int` | `getSpeed()`
    `int` | `getTimeCount()`
    `int[]` | `getWaitTime()`
    `int` | `hashCode()`
    `void` | `initCount()`
    `boolean` | `isEnded()` このオブジェクトが「終了した」状態であるかを検査します.
    `boolean` | `isReaching()` 設定された時間が経過したかを検査します.
    `boolean` | `isRunning()` このオブジェクトが「開始している」状態であるかを検査します.
    `void` | `reset()` 検査の状態を初期化します.
    `void` | `setIndex(ArrayIndexModel index)`
    `void` | `setIndex(int index)`
    `void` | `setSpeed(int speed)`
    `void` | `setTimeCount(int timeCount)`
    `void` | `setWaitTime(int... waitTime)`
    `java.lang.String` | `toString()`

    - ### クラスから継承されたメソッド kinugasa.object.Model

      `clone`

    - ### クラスから継承されたメソッド java.lang.Object

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### FrameTimeCounter

          public FrameTimeCounter(int... waitTime)

      待ち時間を指定して、新しいカウンタを作成します. このコンストラクタでは、速度は1、インデックスは通常のシーケンシャルなインデックスが設定されます。
      パラメータ:
        `waitTime` - 待機時間を指定します。0を指定すると、常にtrueを返すモデルが、1を指定すると、2回目の呼び出しから交互に trueを返すモデルが作成されます。何も指定しない場合は、0になります。

    - #### FrameTimeCounter

          public FrameTimeCounter(int speed,
                                  int[] waitTime)

      速度と待ち時間を指定して、新しいカウンタを作成します. このコンストラクタでは、インデックスは通常のシーケンシャルなインデックスが設定されます。
      パラメータ:
        `speed` - 待ち時間に対する遷移速度を指定します。たとえば、2を指定すると待ち時間から検査のたびに2が引かれ、 0以下になった場合に「時間切れ」と判定されます。
        `waitTime` - 待機時間を指定します。0を指定すると、常にtrueを返すモデルが、1を指定すると、2回目の呼び出しから交互に trueを返すモデルが作成されます。何も指定しない場合は、0になります。

    - #### FrameTimeCounter

          public FrameTimeCounter(ArrayIndexModel index,
                                  int... waitTime)

      インデックスモデルと待ち時間を指定して、新しいカウンタを作成します. このコンストラクタでは、速度は1が設定されます。
      パラメータ:
        `index` - 待ち時間の配列に対するインデックスの遷移モデルを指定します。
        `waitTime` - 待機時間を指定します。0を指定すると、常にtrueを返すモデルが、1を指定すると、2回目の呼び出しから交互に trueを返すモデルが作成されます。何も指定しない場合は、0になります。

    - #### FrameTimeCounter

          public FrameTimeCounter(int speed,
                                  ArrayIndexModel index,
                                  int... waitTime)

      速度、インデックスモデル、待ち時間を指定して新しいカウンタを作成します.
      パラメータ:
        `speed` - 待ち時間に対する遷移速度を指定します。たとえば、2を指定すると待ち時間から検査のたびに2が引かれ、 0以下になった場合に「時間切れ」と判定されます。
        `index` - 待ち時間の配列に対するインデックスの遷移モデルを指定します。
        `waitTime` - 待機時間を指定します。0を指定すると、常にtrueを返すモデルが、1を指定すると、2回目の呼び出しから交互に trueを返すモデルが作成されます。何も指定しない場合は、0になります。

  - ### メソッドの詳細

    - #### clone

          public FrameTimeCounter clone()

      クラスからコピーされた説明: `Model`
      このモデルのクローンを返します. クローンはObjectクラスの機能を使って行われます。
      全てのモデルの実装は、cloneメソッドを適切にオーバーライドする必要があります。
      オーバーライド:
        `clone` クラス内 `TimeCounter`
      戻り値:
        このモデルと同じクラスの新しいインスタンスを返します。

    - #### isReaching

          public boolean isReaching()

      クラスからコピーされた説明: `TimeCounter`
      設定された時間が経過したかを検査します.
      定義:
        `isReaching` クラス内 `TimeCounter`
      戻り値:
        設定された時間が経過した場合にtrue、そうでない場合にfalseを返します.

    - #### initCount

          public void initCount()

    - #### setIndex

          public void setIndex(ArrayIndexModel index)

    - #### setIndex

          public void setIndex(int index)

    - #### getIndex

          public ArrayIndexModel getIndex()

    - #### setSpeed

          public void setSpeed(int speed)

    - #### getSpeed

          public int getSpeed()

    - #### getTimeCount

          public int getTimeCount()

    - #### setTimeCount

          public void setTimeCount(int timeCount)

    - #### getWaitTime

          public int[] getWaitTime()

    - #### setWaitTime

          public void setWaitTime(int... waitTime)

    - #### isEnded

          public boolean isEnded()

      インタフェースからコピーされた説明: `Statable`
      このオブジェクトが「終了した」状態であるかを検査します.
      定義:
        `isEnded` インタフェース内 `Statable`
      定義:
        `isEnded` クラス内 `TimeCounter`
      戻り値:
        終了している場合はtrueを返します。

    - #### isRunning

          public boolean isRunning()

      インタフェースからコピーされた説明: `Statable`
      このオブジェクトが「開始している」状態であるかを検査します. このオブジェクトの状態をリセットできる場合、リセット後も「開始されている」かどうかは 実装によって異なります。
      定義:
        `isRunning` インタフェース内 `Statable`
      定義:
        `isRunning` クラス内 `TimeCounter`
      戻り値:
        開始している場合はtrueを返します。

    - #### reset

          public void reset()

      クラスからコピーされた説明: `TimeCounter`
      検査の状態を初期化します. このメソッドを呼び出すことで、最初に設定された時間や状態を 復元し、再度検査可能にします。
      定義:
        `reset` クラス内 `TimeCounter`

    - #### hashCode

          public int hashCode()

      オーバーライド:
        `hashCode` クラス内 `java.lang.Object`

    - #### equals

          public boolean equals(java.lang.Object obj)

      オーバーライド:
        `equals` クラス内 `java.lang.Object`

    - #### toString

          public java.lang.String toString()

      オーバーライド:
        `toString` クラス内 `java.lang.Object`