kinugasa.game

## クラス GameConfig

- java.lang.Object
- - kinugasa.game.GameConfig

-     public class GameConfig
      extends java.lang.Object

  ゲームの初期設定を指定するためのビルダです.
  このクラスはゲームの起動時に様々な設定を行うために使用します。
  ゲーム起動時の設定が非常に複雑な場合には、このクラスを継承することで 適切な値を返す専用クラスを作成できます。
  設定可能なオプションは以下の通りです。

  オプションの説明
  オプション | 説明 | デフォルト値 | nullの許可 | ゲーム開始後の設定変更
  --- | --- | --- | --- | ---
  title | ゲームウインドウのタイトルおよびゲームの名前 （"ゲームの名前"の用途は特にありませんが、Gameクラスから取得できます） | "My Game" | yes | kinugasa.game.GameWindow
  logPath | ログファイルのパス（ロガーのグローバルログ） ※関連機能kinugasa.util.StdOutTracerも参照のこと。 | null | yes （nullの場合：ログを使用しない） | 変更不能
  location | ゲームウインドウが出現する位置 スクリーン左上からのピクセル単位の距離です。 setCenterOfScreenメソッドにより、画面中央に設定できます。 ただしウインドウサイズを設定してからコールしてください。 | x=0, y=0 |  | kinugasa.game.GameWindow
  size | ゲームウインドウのサイズ | width=600, height=400 |  | kinugasa.game.GameWindow
  backColor | ゲームウインドウの描画可能領域の背景色 | R=48, G=68, B=142(#30448E) |  | kinugasa.game.GameWindow
  icon | ゲームウインドウのアイコン | KGFのアイコン | yes （nullの場合：javaデフォルトアイコン） | kinugasa.game.GameWindow
  fps | 動作FPS | 60 |  | kinugasa.game.GameTimeManager
  renderingHints | レンダリングの品質 詳細はRenderingPolicyを確認してください。テキストのアンチエイリアス設定などができます。 | kinugasa.contents.graphics.RenderingPolicy.SPEED |  | 変更不能
  useMouseCursor | ゲームウインドウ上でマウスカーソルを表示する ※注意：このオプションをtrueにしない限り、マウス入力値の取得ができません | false |  | 変更不能
  useKeyboard | キーリスナをゲームウインドウに登録し、キー状態を検査可能にする | true |  | 変更不能
  closeEvetList | ゲームウインドウを閉じる際のイベント 詳細はkinugasa.game.WindowCloseEventを確認してください。 | 空のリスト |  | kinugasa.game.GameWindow
  lock | ゲームの多重起動を許可しない | true |  | 変更不可
  updateIfNotActive | ゲームのメインウインドウがアクティブでない場合、updateもrepaintも実行しないようにする | true |  | 変更不可

  ゲーム起動後に変更できない項目をゲーム中のオプションで変更する場合には、ゲームの再起動をして反映してください。

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

    コンストラクタ
    コンストラクタと説明
    `GameConfig()` 適当なタイトルでゲーム設定を作成します.
    `GameConfig(java.lang.String title)` ゲーム設定を作成します.

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

    All Methods Instance Methods Concrete Methods
    修飾子とタイプ | メソッドと説明
    --- | ---
    `GameConfig` | `addCloseEvent(WindowCloseEvent event)` ウインドウを閉じる際のイベントを追加します.
    `protected java.awt.Color` | `getBackColor()` ゲームウインドウの背景色を取得します.
    `protected java.util.List<WindowCloseEvent>` | `getCloseEvetList()` 追加されたウインドウクローズイベントを取得します.
    `protected int` | `getFps()` FPSの最大値を取得します.
    `protected java.awt.Image` | `getIcon()` ゲームウインドウのアイコンを取得します.
    `protected java.awt.Point` | `getLocation()` ゲームウインドウの出現位置を取得します.
    `protected java.lang.String` | `getLogPath()` ログファイルパスを取得します.
    `protected java.awt.RenderingHints` | `getRenderingHints()` 描画品質を取得します.
    `protected java.awt.Dimension` | `getSize()` ゲームウインドウのサイズを取得します.
    `protected java.lang.String` | `getTitle()` ゲームウインドウのタイトルを取得します.
    `boolean` | `isLock()`
    `boolean` | `isUpdateIfNotActive()`
    `protected boolean` | `isUseKeyboard()` キーボードを使用するかを決定します.
    `protected boolean` | `isUseMouseCursor()` マウスカーソルを使用するかを決定します.
    `GameConfig` | `noLock()` 多重起動を容認します。
    `GameConfig` | `setBackColor(java.awt.Color backColor)` ウインドウの描画可能領域の背景色を指定します.
    `GameConfig` | `setCenterOfScreen()` 現在のウインドウサイズを使用して、ウインドウがスクリーンの中央に出現するように 位置を調節します.
    `GameConfig` | `setFps(int fps)` FPSの最大値を設定します.
    `GameConfig` | `setHeight(int height)` ウインドウのサイズを変更します.
    `GameConfig` | `setIcon(java.awt.Image icon)` ゲームウインドウのアイコンを指定します.
    `GameConfig` | `setIcon(java.lang.String filePath)` ゲームウインドウのアイコンを指定します.
    `GameConfig` | `setLocation(int x, int y)` ゲームウインドウが出現する位置を指定します.
    `GameConfig` | `setLocation(java.awt.Point location)` ゲームウインドウが出現する位置を指定します.
    `GameConfig` | `setLogPath(java.lang.String logPath)` ログファイルパスを設定します.
    `GameConfig` | `setLogPathAndMKDIR(java.lang.String logPath)` ログファイルパスを設定します.
    `GameConfig` | `setRenderingHints(java.awt.RenderingHints renderingHints)` 描画品質を設定します.
    `GameConfig` | `setRenderingHints(RenderingPolicy policy)` 描画品質を設定します.
    `GameConfig` | `setSize(java.awt.Dimension size)` ウインドウのサイズを変更します.
    `GameConfig` | `setSize(int width, int height)` ウインドウのサイズを変更します.
    `GameConfig` | `setTitle(java.lang.String title)` ゲームウインドウのタイトルバーの文字列を設定します.
    `GameConfig` | `setWidth(int width)` ウインドウのサイズを変更します.
    `GameConfig` | `setX(int x)` ゲームウインドウが出現する位置を指定します.
    `GameConfig` | `setY(int y)` ゲームウインドウが出現する位置を指定します.
    `java.lang.String` | `toString()`
    `GameConfig` | `updateIfNotActive(boolean updateIfNotActive)`
    `GameConfig` | `useKeyboard(boolean use)` キーリスナをゲームウインドウに登録し、キー状態を検査可能にするかを決定します.
    `GameConfig` | `useMouse(boolean use)` ゲームウインドウ上でマウスカーソルを使用するかを決定します.

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

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

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

    - #### GameConfig

          public GameConfig()

      適当なタイトルでゲーム設定を作成します.

    - #### GameConfig

          public GameConfig(java.lang.String title)

      ゲーム設定を作成します.
      パラメータ:
        `title` - タイトルバーに表示する文字列を指定します。

  - ### メソッドの詳細

    - #### setTitle

          public GameConfig setTitle(java.lang.String title)

      ゲームウインドウのタイトルバーの文字列を設定します.
      パラメータ:
        `title` - タイトルバーに表示する文字列を指定します。
      戻り値:
        thisインスタンスを返します。

    - #### addCloseEvent

          public GameConfig addCloseEvent(WindowCloseEvent event)

      ウインドウを閉じる際のイベントを追加します.
      パラメータ:
        `event` - 新しいイベントを追加します。
      戻り値:
        thisインスタンスを返します。

    - #### setLocation

          public GameConfig setLocation(java.awt.Point location)

      ゲームウインドウが出現する位置を指定します.
      パラメータ:
        `location` - 位置を指定します。
      戻り値:
        thisインスタンスを返します。

    - #### setLocation

          public GameConfig setLocation(int x,
                                        int y)

      ゲームウインドウが出現する位置を指定します.
      パラメータ:
        `x` - X方向の位置を指定します。
        `y` - Y方向の位置を指定します。
      戻り値:
        thisインスタンスを返します。

    - #### setX

          public GameConfig setX(int x)

      ゲームウインドウが出現する位置を指定します.
      パラメータ:
        `x` - X方向の位置を指定します。
      戻り値:
        thisインスタンスを返します。

    - #### setY

          public GameConfig setY(int y)

      ゲームウインドウが出現する位置を指定します.
      パラメータ:
        `y` - Y方向の位置を指定します。
      戻り値:
        thisインスタンスを返します。

    - #### setCenterOfScreen

          public GameConfig setCenterOfScreen()

      現在のウインドウサイズを使用して、ウインドウがスクリーンの中央に出現するように 位置を調節します.
      戻り値:
        thisインスタンスを返します。

    - #### setSize

          public GameConfig setSize(java.awt.Dimension size)

      ウインドウのサイズを変更します. このメソッドでの”サイズ”とは、描画可能な領域のサイズです。 したがって、ウインドウ自体のサイズは、指定されたサイズよりも若干大きくなります。
      パラメータ:
        `size` - サイズを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### setSize

          public GameConfig setSize(int width,
                                    int height)

      ウインドウのサイズを変更します. このメソッドでの”サイズ”とは、描画可能な領域のサイズです。 したがって、ウインドウ自体のサイズは、指定されたサイズよりも若干大きくなります。
      パラメータ:
        `width` - 幅を指定します。
        `height` - 高さを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### setWidth

          public GameConfig setWidth(int width)

      ウインドウのサイズを変更します. このメソッドでの”サイズ”とは、描画可能な領域のサイズです。 したがって、ウインドウ自体のサイズは、指定されたサイズよりも若干大きくなります。
      パラメータ:
        `width` - 幅を指定します。
      戻り値:
        thisインスタンスを返します。

    - #### setHeight

          public GameConfig setHeight(int height)

      ウインドウのサイズを変更します. このメソッドでの”サイズ”とは、描画可能な領域のサイズです。 したがって、ウインドウ自体のサイズは、指定されたサイズよりも若干大きくなります。
      パラメータ:
        `height` - 高さを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### setBackColor

          public GameConfig setBackColor(java.awt.Color backColor)

      ウインドウの描画可能領域の背景色を指定します.
      パラメータ:
        `backColor` - 背景色を指定します。
      戻り値:
        thisインスタンスを返します。

    - #### setIcon

          public GameConfig setIcon(java.awt.Image icon)

      ゲームウインドウのアイコンを指定します.
      パラメータ:
        `icon` - ウインドウのアイコンを指定します。
      戻り値:
        thisインスタンスを返します。

    - #### setIcon

          public GameConfig setIcon(java.lang.String filePath)
                             throws ContentsFileNotFoundException,
                                    ContentsIOException

      ゲームウインドウのアイコンを指定します.
      パラメータ:
        `filePath` - ウインドウのアイコンのファイルパスを指定します。
      戻り値:
        thisインスタンスを返します。
      例外:
        `ContentsFileNotFoundException` - 画像ファイルが存在しないときに投げられます。
        `ContentsIOException` - 画像がロードできない場合に投げられます。

    - #### setFps

          public GameConfig setFps(int fps)

      FPSの最大値を設定します.
      パラメータ:
        `fps` - FPSを指定します。通常は30?60です。
      戻り値:
        thisインスタンスを返します。

    - #### setRenderingHints

          public GameConfig setRenderingHints(java.awt.RenderingHints renderingHints)

      描画品質を設定します. 描画の品質を高く設定すると、画像やプリミティブ図名がきれいに表示できますが、 描画速度が下がります。
      ゲームデザインを考慮し、品質と速度のバランスをとった設定を決める必要があります。
      パラメータ:
        `renderingHints` - レンダリングの設定を送信します。
      戻り値:
        thisインスタンスを返します。

    - #### setRenderingHints

          public GameConfig setRenderingHints(RenderingPolicy policy)

      描画品質を設定します. 描画の品質を高く設定すると、画像やプリミティブ図名がきれいに表示できますが、 描画速度が下がります。
      ゲームデザインを考慮し、品質と速度のバランスをとった設定を決める必要があります。
      パラメータ:
        `policy` - レンダリングの設定を送信します。
      戻り値:
        thisインスタンスを返します。

    - #### setLogPath

          public GameConfig setLogPath(java.lang.String logPath)

      ログファイルパスを設定します. 設定された値はロガーのグローバルパスとして使用され、フレームワーク全体のログ出力に使用されます。
      パラメータ:
        `logPath` - ログファイルのパス。nullの場合はログファイルを使用しません。
      戻り値:
        thisインスタンスを返します。

    - #### setLogPathAndMKDIR

          public GameConfig setLogPathAndMKDIR(java.lang.String logPath)

      ログファイルパスを設定します. 設定された値はロガーのグローバルパスとして使用され、フレームワーク全体のログ出力に使用されます。
      パラメータ:
        `logPath` - ログファイルのパス。nullの場合はログファイルを使用しません。
      戻り値:
        thisインスタンスを返します。

    - #### useMouse

          public GameConfig useMouse(boolean use)

      ゲームウインドウ上でマウスカーソルを使用するかを決定します.
      パラメータ:
        `use` - trueを指定すると有効化されます。
      戻り値:
        thisインスタンスを返します。

    - #### useKeyboard

          public GameConfig useKeyboard(boolean use)

      キーリスナをゲームウインドウに登録し、キー状態を検査可能にするかを決定します.
      パラメータ:
        `use` - trueを指定すると有効化されます。
      戻り値:
        thisインスタンスを返します。

    - #### noLock

          public GameConfig noLock()

      多重起動を容認します。
      戻り値:
        thisインスタンスを返します。

    - #### updateIfNotActive

          public GameConfig updateIfNotActive(boolean updateIfNotActive)

    - #### isLock

          public boolean isLock()

    - #### getBackColor

          protected java.awt.Color getBackColor()

      ゲームウインドウの背景色を取得します. このメソッドはKinugasaGameクラスから使用されます。
      戻り値:
        背景色を返します。

    - #### getFps

          protected int getFps()

      FPSの最大値を取得します. このメソッドはKinugasaGameクラスから使用されます。
      戻り値:
        FPSの最大値を返します。

    - #### getIcon

          protected java.awt.Image getIcon()

      ゲームウインドウのアイコンを取得します. このメソッドはKinugasaGameクラスから使用されます。
      戻り値:
        アイコンを返します。

    - #### getLocation

          protected java.awt.Point getLocation()

      ゲームウインドウの出現位置を取得します. このメソッドはKinugasaGameクラスから使用されます。
      戻り値:
        ゲームウインドウの出現位置を返します。

    - #### getRenderingHints

          protected java.awt.RenderingHints getRenderingHints()

      描画品質を取得します. このメソッドはKinugasaGameクラスから使用されます。
      戻り値:
        描画品質の設定を返します。

    - #### getSize

          protected java.awt.Dimension getSize()

      ゲームウインドウのサイズを取得します. このメソッドはKinugasaGameクラスから使用されます。
      戻り値:
        ゲームウインドウのサイズを返します。

    - #### getTitle

          protected java.lang.String getTitle()

      ゲームウインドウのタイトルを取得します. このメソッドはKinugasaGameクラスから使用されます。
      戻り値:
        ゲームウインドウのタイトルとゲームクラスの名前となる 文字列を返します。

    - #### isUseMouseCursor

          protected boolean isUseMouseCursor()

      マウスカーソルを使用するかを決定します. このメソッドはKinugasaGameクラスから使用されます。
      戻り値:
        マウスカーソルを使用する場合はtrueを返します。

    - #### isUseKeyboard

          protected boolean isUseKeyboard()

      キーボードを使用するかを決定します. このメソッドはKinugasaGameクラスから使用されます。
      戻り値:
        キーボードを使用する場合はtrueを返します。

    - #### getLogPath

          protected java.lang.String getLogPath()

      ログファイルパスを取得します. このメソッドはKinugasaGameクラスから使用されます。
      戻り値:
        ログファイルのパス。使用しない場合null。

    - #### getCloseEvetList

          protected java.util.List<WindowCloseEvent> getCloseEvetList()

      追加されたウインドウクローズイベントを取得します. このメソッドはKinugasaGameクラスから使用されます。
      戻り値:
        このゲーム設定に追加されているウインドウクローズイベントを追加された順の リストとして取得します。

    - #### isUpdateIfNotActive

          public boolean isUpdateIfNotActive()

    - #### toString

          public java.lang.String toString()

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