うーん・・・・ | |
どうしたの? | |
あのね、今ゲームを作ろうとしてたんだけど、やっぱり途中でセーブとかロードがしたいんだよ。 それでメニューにある「栞をはさむ」「栞をたどる」を使ってみたんだけど、うまくいかないの。 |
|
ソースを見せて。 | |
これなんだけど・・・ | |
*start [link target="*1"]1を選ぶ[endlink][r] [link target="*2"]2を選ぶ[endlink][r] [s] *1 [er] 1が選択されました。 [s] *2 [er] 2が選択されました。 [s] |
|
これを実行してリンクをクリックするでしょ、それから「栞をはさむ」をしようとしてもできないんだよ。 | |
なるほどね。 KAGでセーブするには、ラベルに細工しないといけないの。 |
|
細工? | |
たとえば、こんな感じね。 | |
*start [link target="*1"]1を選ぶ[endlink][r] [link target="*2"]2を選ぶ[endlink][r] [s] *1|1なの [er] 1が選択されました。 [s] *2|2です [er] 2が選択されました。 [s] |
|
ほら、これでできるでしょ? | |
ほんとだ! でも、どうして? |
|
KAGでは、保存する場所をラベルで覚えてるんだけど、上で書いたような | の付いてるラベルだけ、セーブ可能なラベルと認識するの。 最初にシャロンが書いてたスクリプトだと、セーブ可能なラベルがひとつもなかったから、セーブできなかったわけ。 |
|
どこでもセーブできるわけじゃないんだ。 | |
残念ながら、| の付いたラベルのところでしかできないの。 | |
そっかぁ、残念。 じゃあ、| の付いたラベルを通過して、しばらくしてからセーブするとどうなるの? |
|
ロードしたときは、| の付いたラベルのところから始まることになるよ。 だから、| 付きのラベルの直後は[cm]か[ct]を書いておいた方がいいよね。 |
|
どうして? | |
ロードしてもメッセージレイヤの中の文字は復活できないの。 つまり、中になにが書かれてるか分からない状態だから、ロードしたときにおかしな表示が残る可能性があるわけ。 |
|
じゃあ、[er]でもいいの? | |
ちゃんと他のレイヤの管理ができるならそれでもいいけど、[cm]か[ct]の方がオススメね。 | |
| の後にある文字は? | |
セーブした時につく名前になるよ。 セーブデータの「見出し」みたいなものね。 |
|
確かに、メニューをクリックしたら「見出し」も表示されてるね。 でも・・・ |
|
でも? | |
セーブできる場所って10個しかないの? 今作ってるゲームでは、もっといっぱいセーブしたいんだけど・・・ |
|
増やしたり、減らしたり、簡単にできるよ。 | |
ほんと? | |
Config.tjs の中に、下のような設定があるから、この数字を変更するだけでOK。 | |
// ◆ 利用可能な栞の数 // メニューに表示し、ユーザーが選択可能な栞の数です。 // save や load タグで保存可能な栞の数はこの設定には影響しません。 // メニューによる栞の管理を行わない場合 ( ゲーム画面中で全部栞の管理などを // 行う場合など ) は、numBookMarks は必要な数に設定し、restoreMenu.visible と // storeMenu.visible を false に設定してください。 ;numBookMarks = 10; |
|
できたよ、100個になっちゃったよ。 | |
簡単でしょ。 | |
うん。 でも・・・ |
|
まだ何かあるの? | |
このメニューから選ぶんじゃなくて、ゲームの中のセーブボタンを押したらセーブできるようにできないのかなぁ。 | |
ボタンはまだやってないもんねぇ。 でも、似たようなことはできるよ。saveタグとloadタグって言うのを使えばいいの。 |
|
そのまんまだね。 | |
属性は place と、ask だけ。 place は、保存する場所(栞の番号)ね。 ask は「保存しますか?」って尋ねるかどうか。これは省略すると必ず尋ねるようになるよ。 |
|
試しに作ってみたよ。 | |
*start [link target="*1"]1を選ぶ[endlink][r] [link target="*2"]2を選ぶ[endlink][r] [s] *1|1なの [er] 1が選択されました。[r] セーブしますか?[r] [link target="*save"]セーブする[endlink][r] [link target="*nosave"]セーブしない[endlink][r] [s] *2|2です [er] 2が選択されました。[r] セーブしますか?[r] [link target="*save"]セーブする[endlink][r] [link target="*nosave"]セーブしない[endlink][r] [s] *save [er] [save place=0 ask=true] セーブしました [s] *nosave [er] セーブしませんでした [s] |
|
うん、いいと思うよ。 | |
私だって、やればできるんだよ。 | |
じゃあ、次回はさっき話が出たことだし、ボタンを使ってみようか。 | |
ボタンって、ぽちっと押すやつ? | |
そう。 | |
どんどんゲームらしくなってくるね〜。 | |
というわけで、お楽しみに。 |