Class

GameEngine

stdgam.GameEngine(canvasID)

ゲームの全体的な挙動を管理するクラス. Sceneオブジェクトをロードし, 毎フレームごとに更新処理を実行させることにより ゲーム処理を実現する.

管理を簡単にするため, 使用するシーンは最初にaddSceneメソッドで登録する. このときに設定したシーン名を使って, どのシーンをロードするか指定する. また, キー入力判定に必要なInputManagerや画像・音声を管理するオブジェクトも まとめて提供する.

Constructor

# new GameEngine(canvasID)

指定されたキャンバスを描画に用いるGameEngineを生成する.

Parameters:
Name Type Description
canvasID string

HTMLのキャンバス要素のID

Properties:
Name Type Description
input stdgam.InputManager

キー入力の管理をするオブジェクト

se stdgam.SEPool

ZzFXによるSEを管理するオブジェクト

images stdgam.ImagePool

画像を管理するオブジェクト

sounds stdgam.SoundPool

音声を管理するオブジェクト

caches stdgam.CachePool

オフスクリーン・キャンバスを管理するオブジェクト

View Source stdgam.js, line 456

Methods

# addScene(name, scene)

nameという名前で指定されたシーンを登録する.

Parameters:
Name Type Description
name string

シーンの登録名

scene stdgam.Scene

登録するシーン

View Source stdgam.js, line 493

# changeScene(name, optopt)

nameという名前で登録されているシーンをカレントシーンとする. 第2引数としてオプションリストを指定した場合, これをカレントシーンに伝える. もし該当するシーンがなければ何もしない.

Parameters:
Name Type Attributes Default Description
name string

シーンの登録名

opt Object.<string, *> <optional>
{}

カレントシーンに渡す設定リスト

View Source stdgam.js, line 504

# async ready(callback)

画像・音声のロード完了を待ってからcallbackを実行するasync関数. このメソッドを呼び出しても, 呼び出したプロセス自体は停止しない. (既にロードが完了していれば, 即座にcallbackが非同期処理として実行される)

JavaScriptでは画像や音声のオブジェクトを作っても即座にロードが完了せず, バックグラウンドで読み込み処理を行う. それらが確実に完了した状態で 目的の処理を実行したいときにこのメソッドを使う.

例)

const GE = new stdgam.GameEngine("myCanvas");
GE.images.load("IMAGE_01", "./my_image1.png");
GE.images.load("IMAGE_02", "./my_image2.png");

GE.ready(() => {
   my_paint_operation( pool.get("IMAGE_01") );
   my_paint_operation( pool.get("IMAGE_02") );
});
Parameters:
Name Type Description
callback function

ロードが確実に完了した状態で 呼び出される関数

View Source stdgam.js, line 556

# run()

ゲームの実行を開始する.

View Source stdgam.js, line 484

# update()

基本的にTimeKeeperから呼ばれる. カレントシーンに1フレーム分の処理を実行させる. 具体的には

  1. 画面をクリアする.
  2. カレントシーンのsuperexecuteを呼び出しタスク処理を実行させる.
  3. その後, カレントシーンのsuperdrawを呼び出し描画処理を実行させる.

という手順を行う.

View Source stdgam.js, line 521