フワフワソが「ソラとピヨちゃん」や「宮本県」を作るブログ(フワフワソ・ラウンジnew!)

ラノベとテクノを愛するふわふわがノベルゲームを作っています。あと日常のことやイベントの告知なども。スクリプト関連の記事は自分用の備忘録です

ティラノスクリプトのname属性に変数を使うときの注意

前回の記事で、タグの中のいろんな属性を変数にしておくとfor文で繰り返し処理出来て便利、と書きました。

しかし、[image] 、[glink]、 [button] などの時に使う name= の属性を書く時には、注意が必要です。

name=は文字列を入れるところなので、変数を使うときには文字列変数を入れないとダメです。

つまり、for文で使った数字変数を、そのままname=に入れるとエラーになります。

ここは数字を文字列に変換してから入れたいところですが、その命令がよくわからなくて困っていました。

解決法ですが、文字列に数字をくっつけると、数字の部分も文字列扱いになるようです。

;まずは配列の定義

@eval exp="f.test0=[ ]"
@eval exp="f.test=[ ]"

; =[ と ] の間は本当はスペースない。ブログの表記上こうしないと消えてしまうのでスペース開けてる

[eval exp="f.test0[0] = 13"]
[eval exp="f.i = 15"]
[eval exp="f.test[f.i] = 'nametest'+f.test0[0]"]
[image layer=9 name=&f.test[f.i] folder="image" storage=gazou.png x=360 y=110]
[image layer=9 name=&f.test[15] folder="image" storage=gazou.png x=460 y=110]
[image layer=9 name=nametest13 folder="image" storage=gazou.png x=560 y=110]


実行するとimageフォルダにあるgazou.pngが3つ出ます。

name= の部分に以下のどの書き方をしても成り立つ、という例です

nametest13

&f.test[15]

&f.test[f.i]

 

 これで何ができるかというと、画像やボタンをfor文を使ってちょっとずつ名前を変えながら何十個も一気に定義しておいて、そのあと、特定の一個を[anim]タグで操作する、ということが楽になります。