セーブ・ロードがしたい


うーん・・・・
どうしたの?
あのね、今ゲームを作ろうとしてたんだけど、やっぱり途中でセーブとかロードがしたいんだよ。
それでメニューにある「栞をはさむ」「栞をたどる」を使ってみたんだけど、うまくいかないの。
ソースを見せて。
これなんだけど・・・
*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]
うん、いいと思うよ。
私だって、やればできるんだよ。
じゃあ、次回はさっき話が出たことだし、ボタンを使ってみようか。
ボタンって、ぽちっと押すやつ?
そう。
どんどんゲームらしくなってくるね〜。
というわけで、お楽しみに。


前のページ | MENU | 次のページ



inserted by FC2 system