頻繁に必要になる定型のオブジェクトを作成するためのテンプレート群. 基礎的なオブジェクトを生成する「ジェネレータ」と, 生成済みのオブジェクトに機能を付与する「デコレータ」を提供する.
使用例:
T = stdgam.Templates;
obj = T.slider(
T.finite( T.text("MESSAGE", {font: "20px Serif"}), 120 ),
x1, y1
);
obj.slideTo(x2, y2, 120);
デコレータは対象のオブジェクトを直接変更し, 特定の機能を付与する. これはある種のコードスニペットであり, 他の機能との独立性は保証されないが, stdgam.Templatesで提供する機能同士を組み合わせる分には 内部実装を特に意識しないで済むように構成している.
- ジェネレータ
- text: 文字列を表示するオブジェクト
- ftext: フォーマット機能付きの文字列表示オブジェクト
- image: 画像を表示するオブジェクト
- custom: paintメソッドを持つオブジェクトをラップするオブジェクト
- pause: 一定時間が経過するまで後続のタスクを停止するオブジェクト
- call: 指定した関数を1回呼び出すだけのオブジェクト(実行後消える)
- デコレータ
- finite: 指定した時間が経過すると自動的に消滅する
- scheduler: 指定した時間が経過した後に実行する処理を予約できる
- slider: slideToにより自動的に平行移動させることができる
- fader: fadeToによりアルファを自動的に変化させることができる
Methods
# static _initTraits(obj) → {Object}
デコレータの機能を実現するために使うヘルパー関数. objに _traits 要素が定義されていなければ _traits に空リストをセットする. さらに, もし execute(GE) メソッドがなければ, obj.execute に true を返すだけの空の関数をセットする.
Parameters:
| Name | Type | Description |
|---|---|---|
obj |
Object
|
対象のオブジェクト |
objを返す
Object
# static call(callback) → {Task}
指定された関数を1回実行した後, 自動的に消滅するオブジェクト.
Parameters:
| Name | Type | Description |
|---|---|---|
callback |
function
|
実行する関数 |
生成されたオブジェクト
# 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> |
{} | オプションリスト |
生成されたオブジェクト
# static fader(obj) → {Object}
objに fadeTo(alpha, frames) を付与する.
- fadeTo: 現在位置からalphaまでthis.alphaの値を変化させる
Parameters:
| Name | Type | Description |
|---|---|---|
obj |
Object
|
対象のオブジェクト |
objを返す
Object
# static finite(obj) → {Object}
指定されたフレーム数が経過すると自動で消滅するようにする.
Parameters:
| Name | Type | Description |
|---|---|---|
obj |
Object
|
対象のオブジェクト |
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> |
{} | オプションリスト |
生成されたオブジェクト
# static image(img, optopt) → {Templates_image}
画像の描画を行うオブジェクト. オプションリストを使って x, y, alpha を指定できる.
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
img |
HTMLImageElement
|
表示する画像 |
||
opt |
Object.<string, *>
|
<optional> |
{} | オプションリスト |
生成されたオブジェクト
# static pause(frames) → {Task}
指定されたフレーム数の間 「return false;」を実行し続けるオブジェクト. もし引数として負の数が与えられた場合はこの処理を無限に実行し続ける.
Parameters:
| Name | Type | Description |
|---|---|---|
frames |
number
|
動作を続けるフレーム数. 負の数の場合は無限に実行し続ける. |
生成されたオブジェクト
# 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
|
対象のオブジェクト |
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
|
対象のオブジェクト |
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> |
{} | オプションリスト |
生成されたオブジェクト