こがしぱんるーむ

初心者のゲームプログラミング勉強記録

ティラノスクリプト~シナリオファイルを分けて分岐する~

こがしぱんです。

 

前回は「選択肢で分岐しよう」をやってみました。

 

今回は「シナリオファイルを分けて分岐する」です!

 

選択肢がクリックされた場合、別のスクリプトファイルに移動して戻ってくる、というスクリプトを組んでみます。

 

まず、新しく「scene1.ks」と「scene2.ks」という2つのシナリオファイルを作成します。

 

エディタの「ファイル」を選択し、「新しいテキストファイル」をクリック。


「Untitled-1」というファイルが表示されます。

 

「ファイル」を選択し、「名前を付けて保存」をクリック。

 

保存場所はティラノスクリプトの「scenario」フォルダ内で、

 

ファイル名を「scene1」、ファイルの種類を「tyranoscript(*.ks)」にして、保存。

保存しようとしたら、既にscene1がある!?

 

確認してみるとサンプルゲームとして、既にscene1の名前が使用してある状態でした。

 

中身を開いてみると↓の感じ。

 

とりあえず、今回は「scene2」と「scene3」という名前で保存します。

 

次に、scene2のファイルに以下スクリプト(公式より引用)を入力。

 

エディタにコピペ。

 

scene3のファイルに以下スクリプト(公式より引用)を入力。

 

エディタにコピペ。

 

firstのファイルに以下スクリプト(公式より引用)を入力。

 

前回の選択肢スクリプト部分を消して、エディタにコピペ。

 

「scene1」を「scene2」、「scene2」を「scene3」に編集して、保存、実行。

「選択肢1」をクリックした時、

 

「別ファイルから戻ってきました」が表示されます。

 

「選択肢2」をクリックした時も、

 

「別ファイルから戻ってきました」が表示されました!

 

それでは、今回のスクリプトの確認。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

[link storage=scene2.ks target=*select1]【1】選択肢 その1[endlink][r]

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

「選択肢1」をクリックすると、[link]タグで指定しているシナリオファイル「scene2」へ処理が移ります。

 

[link]タグのstorage属性を指定すると、指定したファイル名にジャンプします。

 

その後、「scene2」の「*select1」ラベルの処理によって、

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

*select1

[cm]
「選択肢1」がクリックされました[l]
@jump storage=first.ks target=*common

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

「first」ファイルの「*common」ラベルへ処理が移ります。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

*common
[cm]
別ファイルから戻って来ました

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

もし、ラベル名を指定していない時は、

(↓だと、taeget=*select1が指定されていない場合)

 

storageで指定したシナリオファイルを上から順に実行します。

 

今度は、storageを指定していない場合、

 

今、開いているファイル(今回の場合だと「first.ks」)と同一ファイルとみなされるので、first.ksファイルの内容が実行されます。

 

ただ、今回、first.ksファイル内に*select1のラベルがないので、「選択肢1」を実行したら何かしらエラーが出るはず!

「ラベル「select1*」は存在しません」のエラー文が表示されました!

これで、first.ksのファイル内で実行されていることが確認できました。

 

ということで、今回はここまで!

 

今回は、「シナリオファイルを分けて分岐する」をやってみました。

 

ストーリーが長いものだと、1つのシナリオファイルで管理しづらくなるので、

分岐シーンやストーリーの区切りなどで適度にシナリオファイルを分けた方が、

管理しやすくなりますね!

 

次回もティラノスクリプトやっていきます!