![]() |
今回から第4章ってことで、いよいよ TJS を使って作ったクラスを KAG スクリプトの中に組み込んでいくよ。 |
![]() |
やっと KAG が使えるところまで来れたね〜。 |
![]() |
まぁ、確かにここまで長かったからね。 |
![]() |
でも、ここまででやってきたことを使えば KAG 用のプラグインとかが作れるんだよね? |
![]() |
うん。 というワケで、第4章は KAG 用のプラグインの作り方について見ていくね。 |
![]() |
あ、そうなんだ。 |
![]() |
じゃあ、まずは KAG 用のプロジェクトフォルダを作るところから始めよっか。 |
![]() |
そういえば、今まで template フォルダの中身って全然使わなかったよね。 |
![]() |
うん。今回からは必要になるから、kag3 フォルダの中にある template フォルダをコピーしてね。 |
![]() |
は〜い! |
<プロジェクトフォルダの構成>
![]() |
こんな感じでいいんだよね? |
![]() |
ん、これで OK。 あと、system フォルダの Config.~new を Config.tjs に名前変更しといてね。 |
![]() |
りょーかい! Config.tjs の中身って書き換えなくてもいいの? |
![]() |
とりあえずメッセージレイヤは使わないから、initialMessageLayerVisible を false にしといて。 |
![]() |
わかった。 |
<初期状態でメッセージレイヤを非表示にします(Config.tjs より抜粋)>
![]() |
これでいいんだよね? |
![]() |
ん、OK。 それじゃ、第4章の目標なんだけど… |
![]() |
うん、何を作るの? |
![]() |
最初は簡単なプラグインからってことで、日付を表示するプラグインを作ろうと思うんだ。 こういう感じのね。 |
<日付表示プラグインの使用例>
![]() |
左上に表示されてる『12/31』っていうのを表示するプラグインを作るってこと? |
![]() |
そ。まぁこれくらいだったら前景レイヤを使ってもいいんだけど、 今回はとりあえずプラグインのメソッドの書き方とかを理解するのが目的だから、シンプルな内容にしようかと思って。 |
![]() |
ふ〜ん。 日付を表示するってことは、また Date クラスとか使うの? |
![]() |
ううん。今回はゲームの中での日付を表示するのに使うことを想定してるから、 Date クラスは使わないよ。 |
![]() |
あ、そうなんだ。 |
![]() |
そのかわり、日付を設定するためのマクロを作って、KAG のシナリオの中で日付を設定できるようにするの。 |
![]() |
マクロも作るの? |
![]() |
KAG プラグインは TJS で書かれてるわけだから、使う時も TJS スクリプトを書かなきゃいけないでしょ。 |
![]() |
うん。 |
![]() |
でも、それだと TJS スクリプトの書き方を知らないと使えなくなっちゃうから、 KAG プラグインを作るときはマクロも一緒に作って、TJS スクリプトを書かなくてもプラグインの機能を使えるようにするんだ。 |
![]() |
あ、なるほどね。 確かにそうすればプラグインが簡単に使えるようになるもんね。 |
![]() |
ん。あと、今回は日付を表示するようにしてるけど、ちょっと応用すれば日付以外にも、例えば所持金とか色んなパラメータを表示したりするのにも使えるよ。 |
![]() |
へ〜、そうなんだ。 |
![]() |
それじゃ、KAG プラグインを使う時に使うクラス、KAGPlugin クラスについてちょっと説明しとくね。 |
![]() |
KAGPlugin クラス? |
![]() |
KAGPlugin クラスは system フォルダの中にある Plugin.tjs の中で定義されてる KAG プラグイン用のクラスだよ。 |
![]() |
ほんとだ。Plugin.tjs の中に KAGPlugin クラスの定義が書いてあるね。 …でも、メンバ変数もないし、どのメソッドにもコメントしか書かれてないよ? |
![]() |
うん。KAGPlugin クラス自体は何も機能を持たないクラスなんだ。 だから KAGPlugin クラスを継承して KAG プラグイン用のクラスを作るの。 |
![]() |
ふぅん…あ、この onStore とか onRestore っていうメソッドって、もしかしてイベントハンドラ? |
![]() |
ん、そうだよ。 KAGPlugin クラスには全部で7つのイベントハンドラがあるんだ。 |
セーブデータ(栞)を保存する時に呼び出されます。 |
第1引数…保存するデータ(辞書配列) |
第2引数…tempsave 時のオプション(現在は常に void) |
セーブデータを読み出す時に呼び出されます。 |
第1引数…読み出すデータ(辞書配列) |
第2引数…tempload 時のオプション(tempload でない場合は void、tempload の場合は辞書配列) |
安定状態(s, l, p タグで停止中)から走行状態(それ以外の状態)に切り替わった時、 または走行状態から安定状態に切り替わった時に呼び出されます。 |
第1引数…安定状態に切り替わった場合は true、走行状態に切り替わった場合は false |
メッセージレイヤの表示/非表示が切り替えられた時に呼び出されます。 |
第1引数…メッセージレイヤが非表示になった場合は true、表示された場合は false |
表(裏)画面の内容が裏(表)画面にコピーされる時に呼び出されます。 |
第1引数…表画面の内容が裏画面にコピーされる場合は true、裏画面の内容が表画面にコピーされる場合は false |
layer=base, children=true のトランジションの終了時に呼び出されます。 |
引数…なし |
システム変数の内容が保存される時に呼び出されます。 |
引数…なし |
![]() |
見たことないメソッドばっかりだね… それになんか難しそうだし… |
![]() |
まぁ、KAGPlugin クラスのイベントは Layer クラスとか Window クラスとかとは全然違ってるけど、そんなに解りにくいのは無いと思うよ。 |
![]() |
そうなの? |
![]() |
今回作るプラグインは、イベントハンドラの中身もわりとシンプルだしね。 |
![]() |
そっか、それならだいじょぶかな。 |
![]() |
ん、じゃ今回はこんなところかな。 それじゃ、また次回ね。 |