吉里吉里情報局

KAGEX の YAML 対応

2006/10/17 01:46

KAGEX に、とりあえず YAML 対応のコードを入れました。 envinit.yaml があれば、envinit.tjs のかわりに読みます。

envinit.tjs では変数名で値を参照しているところがあるので、 そこは要調整。

https://sv.kikyou.info/trac/kirikiri/changeset/1975

ツッコミを入れる

pure TJS の YAML もどきパーサ

2006/10/14 23:39

KAGEX の設定ファイルを YAML (参考: http://jp.rubyist.net/magazine/?0009-YAML ) で書けたらいいんじゃないかと考えてみたので、 TJS で YAML もどきパーサを書いてみました。

YAML の仕様全部を実装するのはかなり大変なので、 簡単な設定ファイルに使いそうな部分だけ実装してあります。

例えば、

%[ 'foo' => ['aaa', 'bbb'],
   'bar' => ['ccc', 'ddd']
]

というような式は YAML では

foo:
  - aaa
  - bbb
bar:
  - ccc
  - ddd

と書けます。

あとは、ファイルから文字列を読みこむ部分なのですが…… プラグインか、もしくは吉里吉里本体に文字列のファイル読み込み 機能を持ってもらうのがよさそうです。

追記

[].load で文字列をファイルから読み込めるようです。 普通の文字列読み込みに使えるとは知らなかった。

ツッコミを入れる

入門KAGEX

2006/10/08 23:43

KAGEX の入手

dee さんの日記でも解説されていますが http://kikyou.info/diary/?200610#i4_3 、Subversion で取得します。

mkdir mygame
cd mygame
svn co https://sv.kikyou.info/svn/kirikiri2/trunk/kag3ex data

Config.tjs

data/system ディレクトリにある Config.~new ファイルを Config.tjs に名前変更します。

envinit.tjs

data ディレクトリに作ります。

とりあえず、次の内容だけ書いておきます。

%[];

プラグイン

layerExImage.dll が必要です。

krkr.exe と同じディレクトリに plugin ディレクトリを作り、 そこに置きます。

ディレクトリ構成

ここまでのディレクトリ構成をまとめると、次のようになります。

mygame/
  |-- krkr.exe
  |
  |-- data/
  |     |-- envinit.tjs
  |     |-- system/
  |     |-- scenario/
  |     `-- ...
  `-- plugin/
        `-- layerExImage.dll

first.ks

world 拡張を読み込むだけの first.ks を data/scenario ディレクトリに作ります。

@call storage="world.ks"

実行

ここまでできたら、一度実行してみましょう。

真っ黒の画面が出てくるはずです。

背景表示

さて、背景を表示してみましょう。

envinit.tjs を次のように書き換えます。

 %[
     "times" => %[
         "昼" => %[],
         ],
     
     "stages" => %[
         "草原" => %[
             "image" => "back000",
             ],
         ],
 
     "defaultTime" => "昼",
 ];

bgimage ディレクトリに、背景画像 back000.png を用意します。 (jpg ファイルなどでもかまいません)

次に、first.ks を次のように修正します。

 @call storage="world.ks"
 
 [linemode mode=page]
 [init]
 [草原]
 
 テスト

さて、実行してみましょう。

ちゃんと背景が表示されたでしょうか。

kagex.png

ツッコミを入れる