Game
のインスタンスを生成する。
この Game
の設定。典型的には game.json の内容をパースしたものを期待する
この Game
が用いる、リソースのファクトリ
アセットのパスの基準となるディレクトリ。省略された場合、空文字列
このゲームを実行するユーザのID。省略された場合、undefined
このゲームの操作プラグインに与えるviewの情報
アセットの管理者。
Game#audioの管理者。
次に生成されるカメラのID。 初期値は 0 であり、以後カメラ生成のたびにインクリメントして利用される。
このゲームの設定(game.json の内容)。
デフォルトローディングシーン。
this.loadingScene
が指定されていない時にローディングシーンとして利用される。
また this.loadingScene
がアセットを利用する場合、その読み込み待ちの間にも利用される。
ここに代入される LoadingScene
はアセットを用いてはならない。
初期値は new g.DefaultLoadingScene(this)
である。
イベントとTriggerのマップ。
使用中のカメラの実体。
focusingcameraがこの値を暗黙的に生成するので、通常ゲーム開発者はこの値を直接指定する必要はない。
this.db
のlastInsertId。
this.db
が空の場合、0が代入されており、以後インクリメントして利用される。
グローバルアセットを読み込むための初期シーン。必ずシーンスタックの一番下に存在する。これをpopScene()することはできない。
this.terminateGame()
が呼び出された後か否か。
これが真の場合、 this.tick()
は何も行わない。
グローバルアセットの読み込み待ちハンドラ。
このゲームに紐づくローカルなエンティティ (E#local
が真のもの)
ローカルエンティティ用の this._idx
。
エントリポイント(mainスクリプト)のパス。
_loadAndStart() に渡された、エントリポイント(mainスクリプト)に渡す引数。
操作プラグインの管理者。
操作プラグインによる操作を通知するTrigger。
実行待ちのシーン遷移要求。
this.scenes
の変化時にfireされるTrigger。
このTriggerはアセットロード(Scene#loadedのfire)を待たず、変化した時点で即fireされることに注意。
ScriptAssetの実行結果キャッシュ。 g.require経由の場合ここに格納される。
_start() 呼び出しから戻る直前を通知するTrigger。 エントリポイント実行後のシーン遷移直後にfireされる。 このTriggerのfireは一度とは限らないことに注意。_loadAndStart()呼び出しの度に一度fireされる。
このコンテンツの累計経過時間。
通常は this.scene().local
が偽である状態で tick()
の呼ばれた回数だが、シーン切り替え時等 tick()
が呼ばれた時以外で加算される事もある。
Assetの読み込みに使うベースパス。 ゲーム開発者が参照する必要はない。 値はプラットフォーム由来のパス(絶対パス)とゲームごとの基準パス(相対パス)をつないだものになる。
グローバルアセットのマップ。this._initialScene.assets のエイリアス。
本ゲームで利用可能なオーディオシステム群。デフォルトはmusicとsoundが登録されている。 SE・声・音楽等で分けたい場合、本プロパティにvoice等のAudioSystemを登録することで実現する。
このコンテンツに関連付けられるエンティティ。(ローカルなエンティティを除く)
デフォルトで利用されるオーディオシステムのID。デフォルト値はsound。
処理待ちのイベント。
外部インターフェース。
実行環境によって、環境依存の値が設定される。 ゲーム開発者はこの値を用いる場合、各実行環境のドキュメントを参照すべきである。
使用中のカメラ。
Game#draw()
, Game#findPointSource()
のデフォルト値として使用される。
この値を変更した場合、変更を描画に反映するためには Game#modified
に真を代入しなければならない。
(ただしこの値が非 undefined
の時、Game#focusingCamera.modified()
を呼び出す場合は
Game#modified
の操作は省略できる。)
フレーム辺りの時間経過間隔。初期値は30である。
ゲーム画面の高さ。
直近の update
の通知が、ローカルティックによるものか否か。
ただし一度も update
通知が起きていない間は真である。
ローカルシーンおよびローカルティック補間シーン以外のシーンにおいては、常に偽。
この値は参照のためにのみ公開されている。ゲーム開発者はこの値を変更すべきではない。
グローバルアセットが読み込み済みの場合真。でなければ偽。
ゲームが早送りに状態にあるかどうか。
スキップ状態であれば真、非スキップ状態であれば偽である。 ゲーム開発者は、この値に起因する処理で、ゲームのグローバルな実行状態を変化させてはならない。 この値は参照のためにのみ公開されている。ゲーム開発者はこの値を変更すべきではない。
プレイヤーがゲームに参加したことを表すイベント。
ゲームにjoinしているプレイヤーIDの一覧。
直近の update
の通知時(の直前)に(タイムスタンプ待ちを省略する動作などの影響でエンジンが)省いたローカルティックの数。
一度も update
通知が起きていない間は 0
である。
ローカルティック補間シーンでない場合、常に 0
であることに注意。
この値は参照のためにのみ公開されている。ゲーム開発者はこの値を変更すべきではない。
プレイヤーがゲームから離脱したことを表すイベント。
アセットのロード中に表示するシーン。 ゲーム開発者はこの値を書き換えることでローディングシーンを変更してよい。
ログ出力を行う部品。プラットフォームに依存しないエラーやデバッグ情報の出力を行う。
画面更新が必要かのフラグ。
ロードしている操作プラグインを保持するオブジェクト。
このゲームの各プレイを識別する値。
このゲームに複数のプレイヤーがいる場合、すなわち Game#join
が複数回fireされている場合、各プレイヤー間でこの値は同一である。
この値は、特に game.external
で提供される外部APIに与えるなど、Akashic Engine外部とのやりとりで使われることを想定する値である。
実行中、この値が変化しないことは保証されない。ゲーム開発者はこの値を保持すべきではない。 また、この値に応じてゲームの処理や内部状態を変化させるべきではない。 この値は参照のためにのみ公開されている。ゲーム開発者はこの値を変更すべきではない。
このGameで利用可能な乱数生成機群。
このコンテンツを描画するためのオブジェクト群。
画面サイズの変更時にfireされるTrigger。
各種リソースのファクトリ。
シーンのスタック。
新しい乱数シードが発生したことを示すイベント。
このゲームを実行している「自分」のID。
この値は、 Game#join
で渡される Player
のフィールド id
と等価性を比較できる値である。
すなわちゲーム開発者は、join してきたPlayer
の id
とこの値を比較することで、
このゲームのインスタンスを実行している「自分」が参加者であるか否かを決定することができる。
この値は必ずしも常に存在するとは限らないことに注意。存在しない場合、 undefined
である。
この値は参照のためにのみ公開されている。ゲーム開発者はこの値を変更すべきではない。
スキップ状態の変化時にfireされるTrigger。
スキップ状態に遷移する時に真、非スキップ状態に遷移する時に偽が与えられる。 この通知は、ゲーム開発者が「スキップ中の演出省略」などの最適化を行うために提供されている。
この通知のfire頻度は、ゲームの実行状態などに依存して異なりうることに注意。 例えば多人数プレイされている時、それぞれの環境でfireされ方が異なりうる。 ゲーム開発者は、この通知に起因する処理で、ゲームのグローバルな実行状態を変化させてはならない。
スナップショット要求通知。 ゲーム開発者はこれをhandleして可能ならスナップショットを作成しGame#saveSnapshotを呼び出すべきである。
ストレージ。
ゲーム全体で共有するサーフェスアトラス。
ゲーム開発者向けのコンテナ。
この値はゲームエンジンのロジックからは使用されず、ゲーム開発者は任意の目的に使用してよい。
ゲーム画面の幅。
g.OperationEventのデータをデコードする。
ゲームを破棄する。 エンジンユーザとコンテンツに開放された一部プロパティ(external, vars)は維持する点に注意。
要求されたシーン遷移を実行する。
pushScene()
、 replaceScene()
や popScene()
によって要求されたシーン遷移を実行する。
通常このメソッドは、毎フレーム一度、フレームの最後に呼び出されることを期待する (Game#tick()
がこの呼び出しを行う)。
ただしゲーム開始時 (グローバルアセット読み込み・スナップショットローダ起動後またはmainScene実行開始時) に関しては、
シーン追加がゲーム開発者の記述によらない (tick()
の外側である) ため、それぞれの箇所で明示的にこのメソッドを呼び出す。
ゲームを開始する。
存在するシーンをすべて(_initialScene以外; あるなら)破棄し、グローバルアセットを読み込み、完了後ゲーム開発者の実装コードの実行を開始する。
このメソッドの二度目以降の呼び出しの前には、 this._reset()
を呼び出す必要がある。
ゲームのエントリポイントに渡す値
ゲーム状態のリセット。
グローバルアセットの読み込みを開始する。 単体テスト用 (mainSceneなど特定アセットの存在を前提にする_loadAndStart()はテストに使いにくい) なので、通常ゲーム開発者が利用することはない
イベントフィルタを追加する。
一つ以上のイベントフィルタが存在する場合、このゲームで発生したイベントは、通常の処理の代わりにイベントフィルタに渡される。 エンジンは、イベントフィルタが戻り値として返したイベントを、まるでそのイベントが発生したかのように処理する。
イベントフィルタはローカルイベントに対しても適用される。 イベントフィルタはローカルティック補間シーンやローカルシーンの間であっても適用される。 複数のイベントフィルタが存在する場合、そのすべてが適用される。適用順は登録の順である。
追加するイベントフィルタ
イベントが存在しない場合でも定期的にフィルタを呼び出すか否か。省略された場合、偽。
その座標に反応する PointSource
を返す。
戻り値は、対象が見つかった場合、 target
に見つかった E
を持つ PointSource
である。
対象が見つからなかった場合、 undefined
である。
戻り値が undefined
でない場合、その target
プロパティは次を満たす:
E#touchable
が真であるcamera
から可視である中で最も手前にある対象の座標
対象のカメラ。指定しなければ Game.focusingCamera
が使われる
現在時刻を取得する。
値は1970-01-01T00:00:00Zからのミリ秒での経過時刻である。
Date.now()
と異なり、この値は消化されたティックの数から算出される擬似的な時刻である。
このインスタンスがアクティブインスタンスであるかどうか返す。
ゲーム開発者は、この値の真偽に起因する処理で、ゲームのローカルな実行状態を変更してはならず、
raiseEvent()
などによって、グローバルな状態を更新する必要がある。
一つ前のシーンに戻ることを要求する。
このメソッドは要求を行うだけである。呼び出し直後にはシーン遷移は行われていないことに注意。
実際のシーン遷移は次のフレームまでに(次のupdateのfireまでに)行われる。
引数 preserveCurrent
が偽の場合、このメソッドの呼び出しにより現在のシーンは破棄される。
またその時 stateChanged
が引数 SceneState.Destroyed
でfireされる。
その後一つ前のシーンの stateChanged
が引数 SceneState.Active
でfireされる。
真の場合、現在のシーンを破棄しない(ゲーム開発者が明示的に破棄せねばならない)。省略された場合、偽
シーンスタックへのシーンの追加と、そのシーンへの遷移を要求する。
このメソッドは要求を行うだけである。呼び出し直後にはシーン遷移は行われていないことに注意。
実際のシーン遷移は次のフレームまでに(次のupdateのfireまでに)行われる。
このメソッドの呼び出しにより、現在のシーンの stateChanged
が引数 SceneState.Deactive
でfireされる。
その後 scene.stateChanged
が引数 SceneState.Active
でfireされる。
遷移後のシーン
イベントを発生させる。
ゲーム開発者は、このメソッドを呼び出すことで、エンジンに指定のイベントを発生させることができる。
発生させるイベント
ティックを発生させる。
ゲーム開発者は、このメソッドを呼び出すことで、エンジンに時間経過を要求することができる。
現在のシーンのティック生成モード Scene#tickGenerationMode
が TickGenerationMode.Manual
でない場合、エラー。
そのティックで追加で発生させるイベント
このGameにエンティティを登録する。
このメソッドは各エンティティに対して暗黙に呼び出される。ゲーム開発者がこのメソッドを明示的に利用する必要はない。
e.id
が undefined
である場合、このメソッドの呼び出し後、 e.id
には this
に一意の値が設定される。
e.local
が偽である場合、このメソッドの呼び出し後、 this.db[e.id] === e
が成立する。
e.local
が真である場合、 e.id
の値は不定である。
登録するエンティティ
イベントフィルタを削除する。
削除するイベントフィルタ
このGameを描画する。
このゲームに紐づけられた Renderer
(this.renderers
に含まれるすべての Renderer
で、この Game
の描画を行う。
このメソッドは暗黙に呼び出される。ゲーム開発者がこのメソッドを利用する必要はない。
対象のカメラ。省略された場合 Game.focusingCamera
現在のシーンの置き換えを要求する。
現在のシーンをシーンスタックから取り除き、指定のシーンを追加することを要求する。
このメソッドは要求を行うだけである。呼び出し直後にはシーン遷移は行われていないことに注意。
実際のシーン遷移は次のフレームまでに(次のupdateのfireまでに)行われる。
引数 preserveCurrent
が偽の場合、このメソッドの呼び出しにより現在のシーンは破棄される。
またその時 stateChanged
が引数 SceneState.Destroyed
でfireされる。
その後 scene.stateChanged
が引数 SceneState.Active
でfireされる。
遷移後のシーン
真の場合、現在のシーンを破棄しない(ゲーム開発者が明示的に破棄せねばならない)。省略された場合、偽
スナップショットを保存する。
引数 snapshot
の値は、スナップショット読み込み関数 (snapshot loader) に引数として渡されるものになる。
このメソッドを呼び出すゲームは必ずsnapshot loaderを実装しなければならない。
(snapshot loaderとは、idが "snapshotLoader" であるglobalなScriptAssetに定義された関数である。
詳細はスナップショットについてのドキュメントを参照)
このメソッドは Game#shouldSaveSnapshot()
が真を返す Game
に対してのみ呼び出されるべきである。
そうでない場合、このメソッドの動作は不定である。
このメソッドを呼び出す推奨タイミングは、Trigger Game#snapshotRequest
をhandleすることで得られる。
ゲームは、 snapshotRequest
がfireされたとき (それが可能なタイミングであれば) スナップショットを
生成してこのメソッドに渡すべきである。ゲーム開発者は推奨タイミング以外でもこのメソッドを呼び出すことができる。
ただしその頻度は推奨タイミングの発火頻度と同程度に抑えられるべきである。
保存するスナップショット。JSONとして妥当な値でなければならない。
保存時の時刻。 g.TimestampEvent
を利用するゲームの場合、それらと同じ基準の時間情報を与えなければならない。
現在のシーンを返す。
ない場合、 undefined
を返す。
このインスタンスにおいてスナップショットの保存を行うべきかを返す。
スナップショット保存に対応するゲームであっても、 必ずしもすべてのインスタンスにおいてスナップショット保存を行うべきとは限らない。 たとえば多人数プレイ時には、複数のクライアントで同一のゲームが実行される。 スナップショットを保存するのはそのうちの一つのインスタンスのみでよい。 本メソッドはそのような場合に、自身がスナップショットを保存すべきかどうかを判定するために用いることができる。
スナップショット保存に対応するゲームは、このメソッドが真を返す時にのみ Game#saveSnapshot()
を呼び出すべきである。
戻り値は、スナップショットの保存を行うべきであれば真、でなければ偽である。
このゲームを終了する。
エンジンに対して続行の断念を通知する。 このメソッドの呼び出し後、このクライアントの操作要求は送信されない。 またこのクライアントのゲーム実行は行われない(updateを含むイベントのfireはおきない)。
この Game
の時間経過とそれに伴う処理を行う。
現在の Scene
に対して Scene#update
をfireし、 this.events
に設定されたイベントを処理する。
このメソッドの呼び出し後、 this.events.length
は0である。
このメソッドは暗黙に呼び出される。ゲーム開発者がこのメソッドを利用する必要はない。
戻り値は呼び出し前後でシーンが変わった(別のシーンに遷移した)場合、真。でなければ偽。
偽を与えた場合、this.age
を進めない。
タイムスタンプ待ちを省略する動作などにより、(前回の呼び出し以降に)省かれたローカルティックの数。省略された場合、 0
。
このGameからエンティティの登録を削除する。
このメソッドは各エンティティに対して暗黙に呼び出される。ゲーム開発者がこのメソッドを明示的に利用する必要はない。
このメソッドの呼び出し後、 this.db[e.id]
は未定義である。
登録を削除するエンティティ
Generated using TypeDoc
コンテンツそのものを表すクラス。
本クラスのインスタンスは暗黙に生成され、ゲーム開発者が生成することはない。 ゲーム開発者はg.gameによって本クラスのインスタンスを参照できる。
多くの機能を持つが、本クラスをゲーム開発者が利用するのは以下のようなケースである。