TYRANOとtyrano(tyrano.js)
TYRANO = object(tyrano.core); // 98行目
TYRANO.kag = object(tyrano.plugin.kag); // 68行目
tyrano.plugin.kagの定義はkag.jsに記載
TYRANO.kag.tyrano = TYRANO; // 71行目
←kagからTYRANOを参照するため
TYRANOとtyranoは別物
tyranoとTYRANO.kag.tyranoは別物
TYRANOとTYRANO.kag.tyranoは同じもの
kag.js
init
「コンフィグファイルの読み込み」、「ゲームの初期化(init_game)」、「first.ks読み込み」などを行う。
init_game
レイヤーの作成(base, message, character) // 1194行
parseScenario
シナリオファイルをタグ配列にパース。
loadScenario
parseScenarioでタグ配列を取得し、実行していく。
setStyles
cssにスタイルをセットする。
様々なタグの処理で利用される。
kag.tag.js
nextOrder
master_tagとmacroに対して、その処理を実行する。
実行はthis.master_tag[tag.name].start関数(462行目)から行われる。
なので、start関数の定義は必須。
また、kag.trigger("nextorder")によって、開発ツールにタグの実行を通知したりもしている。
非同期処理を前提としているので、同期させたい場合はコールバックの利用などが必要。
タグの記述
vital: 必須パラメータ
pm: 任意パラメータ(デフォルト値つき)
start関数に処理を記述
[chara_show]
デフォルトでは、div.0_fore(page: "fore", layer: "0")下にdiv.tyrano_charaを追加し、キャラ画像を表示。
tyrano.base.js
body直下のdiv#tyrano_baseの設定。
kag.layer.js
tyrano_base下のdiv#root_layer_gameとdiv#root_layer_systemの設定。
root_layer_gameは背景、キャラクターなど。
root_layer_systemはメッセージウィンドウ、UI、メニューなど。
kag.menu.js
メニューボタンをクリックすると、showMenu関数が呼ばれ、div.layer_menu -> div#menu_menu_wrapper -> div.display_menuに各種コンフィグボタンを表示
kag.tag_system.js
システム・外部プラグイン関連タグの定義。
クリック待ちの仕組み
kag.layer.jsでイベントレイヤーを作成。
kag.key_mouse.jsでイベントレイヤーのクリックを管理し、nextOrderを実行。
kag.jsのis_stop, is_strong_stopでストップ状態を管理。
外部プラグインの仕組み
pluginタグ(kag.tag_system.js 2733行目)
プラグインの初期化。
storageパラメータのデフォルト値がinit.ksになっており、startTag関数から[call]タグを呼び、init.ksが実行される。
this.kag.stat.mp = pmでパラメータを保存。
タグ登録方法
TYRANO.kag.ftag.master_tag.tag_name = {
vital : [""],
pm : {},
start : function(pm) {}
}
という感じでタグオブジェクトとその中のstart関数を登録する。
(※custom_rubyプラグインではtyrano.plugin.kag.tagを利用していたが、これは既にあるrubyタグを上書きするから?)
パラメータ
Vroidプラグイン
html要素
TYRANO.kag.layer.getLayer(layer).append(domElement); // vroid.js 171行目
domElementはcanvas要素。
getLayer関数はdiv要素(jQueryオブジェクト)を取得。