空想曲線

吉里吉里2/KAG3でのゲーム制作に使える小ネタ置き場。ゲーム用素材も置いてます。

吉里吉里/KAG:クリッカブルマップであれこれ  

2012-11-12[Mon]
cm0
tb0

吉里吉里/KAG小ネタシリーズ。
領域ファイルを作るのが面倒くさくて避けていたクリッカブルマップです。
作り方はリファレンスを読めば分かると思うので、ちょっとした小ネタを。



pimageが使える


クリッカブルマップに使う背景画像をhoge.pngとします。
領域ファイルをhoge_p.pngとします。
領域アクション定義ファイルをhoge.maとします。
pimageで追加する画像をhoge2.pngとします。

とりあえず、背景画像を表示させます。

[ image storage=hoge layer=0 top=0 left=0 visible=true ]

これでクリッカブルマップが有効になります。
領域ファイルはhoge_p.png、領域アクション定義ファイルはhoge.maです。

別の領域ファイルを指定したいときは
[ mapimage storage=hoge.ks layer=0 ]

別の領域アクション定義ファイルを指定したいときは
[ mapaction storage=hoge.ma layer=0 ]

と書きます。

次に、pimageタグで追加する画像を読み込ませます。
[ image storage=hoge layer=0 top=0 left=0 visible=true ]
[ pimage storage=hoge2 layer=0 dx=350 dy=250 sw=90 sh=50 sx=0 sy=0 ]

ちなみにpimageタグの属性は以下のとおりです。
storage:読み込む画像
layer:読み込ませるレイヤ
dx:元画像に対しての表示開始位置(X座標)
dy:元画像に対しての表示開始位置(Y座標)
sx:追加する画像の表示開始位置(X座標)
sy:追加する画像の表示開始位置(Y座標)
sw:追加する画像の幅
sh:追加する画像の高さ
visible:画像を可視にするかどうか

ややこしいと思われるdx,dy,sx,sy,sw,shは、図にするとこうなります。
pimageタグの属性



クリッカブルマップを脱出ゲームに使用する


クリッカブルマップの使い道としてパッと思いつくのが脱出ゲームなので、例にあげます。
アイテムを取る前は表示、取った後は非表示にしたいとします。

hoge.pngを背景画像とします。
背景画像
自分でもほれぼれするくらいのヘボさ。パース? なにそれ。

hoge2.pngをアイテム画像とします。
カギ
どこにでもよくあるカギ。

領域ファイルはhoge_p.pngとします。
領域ファイル
領域に使用する色は白以外なら何でも構いません。

背景画像を重ねるとこう。何かありそうな場所に領域を指定しました。
重ねてみる

次に、領域アクション定義ファイルhoge.maを書きます。

0:autodisable=false;
1:storage="first.ks";target="*001";

領域1(黄緑色の部分)をクリックするとfirst.ksの*001のラベルにジャンプします。
他の領域は使わないので省略しましたが、同じように書いています。

アイテムを取ったかどうかの判定には、変数f.getitemを使用します。
持っていればを、それ以外は持っていないことにします。

では、スクリプトを書いていきます。
*start
[ cm ]
;テキストを表示するメッセージレイヤの設定
[ position layer=message0 opacity=0 ]

;クリッカブルマップに使う画像を前景レイヤ0に読み込む
[ image storage=hoge layer=0 top=0 left=0 visible=true ]

;もしhoge2のアイテムを取っていない場合は追加画像を表示
[ if exp="f.getitem != 1" ]
[ pimage layer=0 storage=hoge2 dx=350 dy=250 sw=90 sh=50 sx=0 sy=0 ]
[ endif ]


;シナリオの停止
[ s ]


*001
[ cm ]
;クリッカブルマップを無効化
[ mapdisable layer=0 ]

;hoge2のアイテムを取っていない場合
[ if exp="f.getitem != 1" ]
テーブルの上にカギが置いてある。[ p ]
;hoge2を取ったというフラグ
[ eval exp="f.getitem = 1" ]
;すでに取っている場合
[ else ]
もう何もない。[ p ]
[ endif ]

[ jump target=*start ]
[ s ]

アイテム(カギ)を取る前は画像が表示されますが、取ったあとは表示されません。
また、それに合わせてテキストも変更されます。
追加画像を一緒に
画像にテキストが入っていないのは下画面をカットしたせいです。すまん。

アイテムを取得したか否かで別のラベルに飛ばしたいときは
領域アクション定義ファイルを以下のように書き換えます。
0:autodisable=false;
1:storage="first.ks";if(f.getitem != 1){target="*001";}else{target="*002";}

アイテムを取る前は*001へ、アイテムを取ったあとは*002へジャンプします。

おつかれっしたーヾ(*´∀`*)ノ

領域アクション定義ファイルでは、exp,onenter,onleaveも使えるので、
カーソルが乗ったときに画像や文字を表示するってのもラクかも。


関連記事

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://kopacurve.blog33.fc2.com/tb.php/275-12cd7c72
この記事にトラックバックする(FC2ブログユーザー)

現在のページ

Category

Link

Comment

Mailform

Author

Twitter