kinugasa.game

## クラス Game

- java.lang.Object
- - kinugasa.game.Game

- すべての実装されたインタフェース:
    Nameable
  直系の既知のサブクラス:
    KinugasaGame

      public abstract class Game
      extends java.lang.Object
      implements Nameable

  全てのゲームの基底クラスです.
  このクラスは主にロジックからの操作を受け取る共通インターフェースとして機能します。

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

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `protected java.lang.String` | `name` このゲームの名前です.

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

    コンストラクタ
    修飾子 | コンストラクタと説明
    --- | ---
    `protected` | `Game(java.lang.String name)` 新しいゲームを作成します.

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

    All Methods Instance Methods Abstract Methods Concrete Methods
    修飾子とタイプ | メソッドと説明
    --- | ---
    `protected abstract void` | `dispose()` ゲームの終了前処理を定義します.
    `protected abstract void` | `draw(java.awt.Graphics2D g)` ゲームの再描画を行うメソッドです.
    `abstract void` | `gameExit()` このメソッドを呼び出すことで、ゲームを終了します.
    `protected abstract void` | `gameStart(java.lang.String[] args)` このメソッドを呼び出すことで、ゲームを起動します.
    `abstract GameTimeManager` | `getGameTimeManager()` ゲームの時間管理クラスを取得します.
    `java.lang.String` | `getName()` このインスタンスの一意的な名前を取得します.
    `abstract GameWindow` | `getWindow()` ゲームのGUI設定を取得します.
    `protected abstract void` | `startUp()` ゲームの初期化処理を定義します.
    `java.lang.String` | `toString()`
    `protected abstract void` | `update()` ゲームの更新処理を定義します.

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### フィールドの詳細

    - #### name

          protected final java.lang.String name

      このゲームの名前です.

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

    - #### Game

          protected Game(java.lang.String name)

      新しいゲームを作成します.
      パラメータ:
        `name` - ゲームの名前を指定します。

  - ### メソッドの詳細

    - #### getName

          public java.lang.String getName()

      インタフェースからコピーされた説明: `Nameable`
      このインスタンスの一意的な名前を取得します. 名前はゲームの実行中変更されてはなりません。
      定義:
        `getName` インタフェース内 `Nameable`
      戻り値:
        このインスタンスを識別できる一意的な名前を返します。名前はユーザやプレイヤーが指定する可能性があるため 意味のある文字列を推奨します。

    - #### startUp

          protected abstract void startUp()

      ゲームの初期化処理を定義します. このメソッドは、ゲームの起動時（gameStartをコールした後）に必ず1度だけ実行されます。
      コンテンツのロードやフィールドの初期化処理を定義してください。

    - #### dispose

          protected abstract void dispose()

      ゲームの終了前処理を定義します. このメソッドは、ウインドウを閉じたり、ゲーム中のイベントによってgameExit()が呼ばれた場合に 1度だけ実行されます。コンテンツの解放や途中経過の保存を定義してください。

    - #### update

          protected abstract void update()

      ゲームの更新処理を定義します. このメソッドは、ゲーム実行中のdraw(Graphics2D)がコールされる前に毎回呼ばれます。
      ワールドの更新や座標の変更処理を定義してください。

    - #### draw

          protected abstract void draw(java.awt.Graphics2D g)

      ゲームの再描画を行うメソッドです. このメソッドは、repaint()メソッドから呼ばれます。このメソッドは、実装によっては 1フレーム中に何度もコールされることがあります。
      パラメータ:
        `g` - 書き込むグラフィックスコンテキスト.

    - #### gameStart

          protected abstract void gameStart(java.lang.String[] args)
                                     throws java.lang.IllegalStateException

      このメソッドを呼び出すことで、ゲームを起動します. このメソッドは、ゲームの起動時に1度だけコールするようにしてください。
      通常は、メインメソッドで必要なシステムプロパティを設定した後、ゲームクラスの 作成に続いてこのメソッドを呼び出します。
      GUIやフィールドの初期化後、ループを起動してください。ループがstartUp()を呼び出すため、
      startUp()を明示的に呼び出す必要はありません。
      パラメータ:
        `args` - コマンドライン引数を指定します。
        この値はCMDArgsクラスに登録されます。
      例外:
        `java.lang.IllegalStateException` - ゲームがすでに起動している場合に投げられます。

    - #### gameExit

          public abstract void gameExit()
                                 throws java.lang.IllegalStateException

      このメソッドを呼び出すことで、ゲームを終了します. ウインドウのクローズイベントやゲーム中のイベントとして このメソッドをコールすることができます。
      このメソッドはdispose()を起動したあと、アプリケーションを終了させます。
      例外:
        `java.lang.IllegalStateException` - ゲームがすでに起動している場合に投げられます。

    - #### getWindow

          public abstract GameWindow getWindow()

      ゲームのGUI設定を取得します. このメソッドによって返されるWindowインスタンスに操作を行うことで、 ウインドウの状態を変更することができます。
      戻り値:
        このゲームで使用されているWindowの実装が返されます.

    - #### getGameTimeManager

          public abstract GameTimeManager getGameTimeManager()

      ゲームの時間管理クラスを取得します. このメソッドによって返されるGameTimeManagerに操作を行うことで FPSの変更や経過時間の取得ができます。
      戻り値:
        このゲームで使用されているGameTimeManagerが返されます.

    - #### toString

          public java.lang.String toString()

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