Namespace

Templates

stdgam.Templates

頻繁に必要になる定型のオブジェクトを作成するためのテンプレート群. 基礎的なオブジェクトを生成する「ジェネレータ」と, 生成済みのオブジェクトに機能を付与する「デコレータ」を提供する.

使用例:

    T = stdgam.Templates;
    obj = T.slider(
        T.finite( T.text("MESSAGE", {font: "20px Serif"}), 120 ),
        x1, y1
    );
    obj.slideTo(x2, y2, 120);

デコレータは対象のオブジェクトを直接変更し, 特定の機能を付与する. これはある種のコードスニペットであり, 他の機能との独立性は保証されないが, stdgam.Templatesで提供する機能同士を組み合わせる分には 内部実装を特に意識しないで済むように構成している.

  1. ジェネレータ
  • text: 文字列を表示するオブジェクト
  • ftext: フォーマット機能付きの文字列表示オブジェクト
  • image: 画像を表示するオブジェクト
  • custom: paintメソッドを持つオブジェクトをラップするオブジェクト
  • pause: 一定時間が経過するまで後続のタスクを停止するオブジェクト
  • call: 指定した関数を1回呼び出すだけのオブジェクト(実行後消える)
  1. デコレータ
  • finite: 指定した時間が経過すると自動的に消滅する
  • scheduler: 指定した時間が経過した後に実行する処理を予約できる
  • slider: slideToにより自動的に平行移動させることができる
  • fader: fadeToによりアルファを自動的に変化させることができる

View Source stdgam.js, line 1110

Methods

# static _initTraits(obj) → {Object}

デコレータの機能を実現するために使うヘルパー関数. objに _traits 要素が定義されていなければ _traits に空リストをセットする. さらに, もし execute(GE) メソッドがなければ, obj.execute に true を返すだけの空の関数をセットする.

Parameters:
Name Type Description
obj Object

対象のオブジェクト

View Source stdgam.js, line 1263

objを返す

Object

# static call(callback) → {Task}

指定された関数を1回実行した後, 自動的に消滅するオブジェクト.

Parameters:
Name Type Description
callback function

実行する関数

View Source stdgam.js, line 1244

生成されたオブジェクト

Task

# static custom(contents, optopt) → {Templates_custom}

paint(GE, ctx, x, y)を持つオブジェクトを受け取り, それを描画するオブジェクトを生成する. ここで, GEはstdgam.GameEngine, ctxは描画に使うコンテクストを表す.

文字列でも画像でもないオブジェクトをTemplatesの枠組みで使いたいとき, customでラップして用いる.

オプションリストを使って x, y, alppha を指定することもできる.

Parameters:
Name Type Attributes Default Description
contents Object

実際に描画を行うオブジェクト

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

オプションリスト

View Source stdgam.js, line 1208

生成されたオブジェクト

# static fader(obj) → {Object}

objに fadeTo(alpha, frames) を付与する.

  • fadeTo: 現在位置からalphaまでthis.alphaの値を変化させる
Parameters:
Name Type Description
obj Object

対象のオブジェクト

View Source stdgam.js, line 1369

objを返す

Object

# static finite(obj) → {Object}

指定されたフレーム数が経過すると自動で消滅するようにする.

Parameters:
Name Type Description
obj Object

対象のオブジェクト

View Source stdgam.js, line 1275

objを返す

Object

# static ftext(format, target, key, optopt) → {Templates_ftext}

formatに含まれる "${}" という文字列を全部 target[key] に置き換えて 得られるテキストを表示するオブジェクト. もしtargetが偽の場合は, このオブジェクト自身をターゲットとする.

自動的にテキストが更新されること以外はtextと同じ挙動をする. オプションリストの扱いなども共通である.

Parameters:
Name Type Attributes Default Description
format string

雛形となる文字列

target Object | null | false

観察対象

key string

取得するプロパティの名前

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

オプションリスト

View Source stdgam.js, line 1160

生成されたオブジェクト

# static image(img, optopt) → {Templates_image}

画像の描画を行うオブジェクト. オプションリストを使って x, y, alpha を指定できる.

Parameters:
Name Type Attributes Default Description
img HTMLImageElement

表示する画像

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

オプションリスト

View Source stdgam.js, line 1183

生成されたオブジェクト

# static pause(frames) → {Task}

指定されたフレーム数の間 「return false;」を実行し続けるオブジェクト. もし引数として負の数が与えられた場合はこの処理を無限に実行し続ける.

Parameters:
Name Type Description
frames number

動作を続けるフレーム数. 負の数の場合は無限に実行し続ける.

View Source stdgam.js, line 1230

生成されたオブジェクト

Task

# static scheduler(obj) → {Object}

objに after(frames, callback) と loop(frames, callback) を付与する.

  • after: 指定時間が経過したときcallbackを実行する
  • loop: callbackの実行結果がtrueである限りafterと同じ処理を繰り返す

ここで, callbackの受け取る引数は (GE, self) である. GEはタスク処理を実行しているGameEngine, selfはobj自身である.

Parameters:
Name Type Description
obj Object

対象のオブジェクト

View Source stdgam.js, line 1295

objを返す

Object

# static slider(obj) → {Object}

objに moveTo(x, y) と slideTo(x, y, frames) を付与する. moveTo: this.x, this.yを指定した値に変更する. slideTo: 現在位置から(x,y)までthis.x, this.yの値を等速変化させる.

Parameters:
Name Type Description
obj Object

対象のオブジェクト

View Source stdgam.js, line 1333

objを返す

Object

# static text(str, optopt) → {Templates_text}

テキストの描画を行うオブジェクト. オプションリストを使って x, y, color, font, alpha を指定できる. これらに加えて, CanvasRenderingContext2Dに対して指定可能な他の属性も optで渡すことができる.

Parameters:
Name Type Attributes Default Description
str string

表示する文字列

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

オプションリスト

View Source stdgam.js, line 1122

生成されたオブジェクト