長文については折り畳みを使用しています。
スクリプトサンプルをみる、または、詳細をみる をクリックしてください!
変数関係 項目
*基本的なものから。変数を扱えるようになると、複雑な分岐も可能です。
’’初心者は、必ず見るだけではなく、実際に入力して練習してください。見るだけでわかる人は慣れた人です。詳細も確認’’[eval exp="f.hensu==1"]になってないか注意!!
- 概要
- タグの中に値を渡す エンティティ
- 変数の内容を表示する(変数に代入する)
- 変数の削除
- 変数の足し算
- 変数の掛け算
- 変数の割り算(除算)
- 変数にいれた文字の長さを調べる。
- 乱数の処理
- 配列
- 変数にいれた文字の連結
- 数値の変数を文字列に変換
>>11件目以降は変数関係(2ページ目)にお願いします。
>>メニューにもどる。
引用元 参考ほか
提示版引用情報
提示版URL 情報募集中 まとめちゅう
http://tyrano.bbs.fc2.com/reply/6151304/48/ 小数点切り捨 現在時刻
概要 基本
詳細をみる。
kag,ティラノスクリプト用の変数です。(javascriptではありません。ですので、このexp、eval属性として使用できる式には、「var,new,delete,function」などの演算子やキーワードが使用できません)
■ゲーム変数値数値を代入 (標語:『変数代入・右から左へ受け"入れる"』)
[eval exp="f.flag1 = 1000"]
■システム変数に文字列を代入
[eval exp="sf.変数その1 = '文字列'"]
;jsで後で動かしたいなどあるので出来るだけsf.hensu1の方がいい
■一時変数に変数を代入
[eval exp="tf.flag1 = f.flag2"]
■mp.についてはマクロとサブルーチンを参照してください。
マクロ内のみでの使用変数です。
kag(tjs),ティラノスクリプト用の変数を[eval]でなく[iscript]~[endscript]内で値を代入する例。
※何故使う必要があるかは下記※1をご覧ください。
[iscript]
f.flag1 = 1000
sf.hensu = '文字列'
tf.flag1 = f.flag2
[endscript]
javascript 用の変数です。『f.』『tf.』『sf.』がついてません。
iscript内でしか使用できません。
f.flag1とは全く別ものです! ※2
複雑なjavascriptのスクリプトの時、またはjavascriptでしか扱えない場合に使用します。
[iscript]
var flag1 = 1000;
[endscript]
※2
f.flag1とは全く別ものですので この↑のあとに
[eval exp="falg1"]をしてもundefined (「定義されていない」)と表示されるかゲームが止まる場合があるので注意しましょう。複雑な計算でvarなどを使用したい場合は、後でf.flagに代入して渡しましょう。
[iscript]
var flag1 = 1000;
f.flag=flag1;
[endscript]
[eval exp="f.flag"]
※1 javascriptの変数を kag(tjs),ティラノスクリプト用の変数へと橋渡しができます。
[iscript]
var x=10;
f.flag1=x;
[endscript]
[eval exp="f.falg1"]
;10と表示される
■変数の種類
ティラノスクリプトでは、以下の3つの種類の変数が利用できます。
システム変数 sf.hensu
ゲーム全体で共有する変数です。例えば、「エンディングを見たことがあるか否か」といったセーブデータに影響されない内容を保存します。
ゲーム変数 f.hensu
セーブデータ毎に管理する変数です。他のセーブデータが呼び出されると上書きされます。 例えば、「アイテム管理」や「どの選択肢を選んだか」といったゲームの進行に関わるデータを保存します
一時変数 tf.hensu
一時的に使用するデータを保存します。ゲームを再開しても復元されません。
■ゲーム変数 test の内容を コンソール に出力する
[trace exp="f.test"]
【KAG3吉里吉里の場合】
コンソールは Shift+F4 で表示されるほか、Config.tjs 内で logMode を設定することに より、ファイルに記録することもできます。
【ティラノスクリプト ブラウザの場合】
ブラウザのウェブインスペクタからコンソールを確認してください
覚えておくと便利
未定義・・・ undefined
何も入っていない・・・ null
一時変数:this.kag.variable.tf["変数名"]
ゲーム変数:this.kag.stat.f["変数名"]
システム変数:this.kag.variable.sf["変数名"]
システム変数はローカルストレージのクリアでは消せません。
クッキーとサイトデータまたは、専用のタグを使用[clearsysvar] を使用して下さい。
デバックは二週目を想定したものと何も無い状況下で試行。
※この記事による免責事項は追いません
一時変数とゲーム変数の使いどころ
"詳細をみる"
またゲームをやめた場合においても記憶はないものとされます。
(保存しない場合は記憶されないです。保存しない場合において、ゲームをやめた時点、リロードされた時点で記憶はないものとされます)
◆一例
[if exp="tf.game == true"]
一時変数は==(等しい)である確立は!=(等しくない)より低いので、
この条件の場合は、スキップしてほしいものを書いたりします。
かといってゲームをやめないで(かつ、値を変更しないで)この分岐に入ると反応してしまうので注意。
[endif]
[if exp="f.game != true"]
ゲーム変数は、しっかり記憶するのでしっかり反応してほしいもの条件に書いたりします。
当たり前ですが、 == でも != でもどちらでも万能に使えます。
この条件の場合、別のデータをロードして フラグが立っている状態では反応なしです。
[endif]
sf.システムフラグは、保存しなくても実行(代入・計算)された時点で保存されます。
基本2:タグの中に値を渡す エンティティ
文字の場合はシングルクォート' 'で囲って下さい。そのあと規定通りダブルクォート'' "で
exp=以降を囲って下さい。数値の場合はシングルクォートは、いりません。
詳細をみる
;一時変数にテキストを代入 javascript
[iscript]
tf.title = "これはテストですよ"
[endscript]
;またはティラノスクリプトで [eval exp="tf.title='これはテスト'"]
;代入しておいた変数をtext属性の値として格納 「これはテストですよ」というテキストが画面に表示されます
[ptext layer=1 page=fore text=&tf.title size=30 x=180 y=150 color=red ]
変数の内容を表示する (変数に代入する)
変数の内容をシナリオで表示したい場合は[emb]タグを使用してください
例えば、以下のようになります。
スクリプトサンプルをみる
[cm]
[eval exp="f.num=200"]
[eval exp="f.mojiretu='こんにちは'"]
f.num の内容 : [emb exp="f.num"][l][r]
f.mojiretu の内容 : [emb exp="f.mojiretu"][l][r]
連続で(一文のexpで)別の変数に代入する
[eval exp="f.hensu1='zero', f.hensu2= 'one'"]
[emb exp=f.hensu1][r]
[emb exp=f.hensu2]
;変数にテキストを代入 メッセージでは無くptextで表示
[eval exp="f.test='これはテスト'"]
;代入しておいた変数をtext属性の値として格納 「これはテストですよ」というテキストが画面に表示されます
[ptext layer=1 page=fore text=&f.test size=30 x=180 y=150 color=red ]
変数の削除
変数を削除する場合は delete 変数名 と記述します。
スクリプトサンプルをみる
例えば、f.flag1 を削除したい場合は
[eval exp="delete.f.flag1"]
”使わない変数は”削除して動きを軽やかにしましょう。
2016/07/25 (Mon) 01:55:06
[clearvar]でゲーム変数を一括で全消去できます。
[clearsysvar]タグでシステム変数を全消去できます。
[eval exp="f={}"]な表記で 特定の変数の種類だけ初期化できます。
上の例だとゲーム変数
f = {flag1:"aaa",flag2:"bbb"};
f = {} ;は f(ゲーム変数を)すべて初期化するという意味です
776 2016/07/27 (Wed) 11:56:01
↓ブラウザで作ってるティラノスクリプトはこっちでもok セーブデータも全部消えます。
[iscript]
localStorage.clear()
[endscript]
変数の足し算
スクリプトサンプルをみる
f.flag1に1を足してf.flag1に代入する。
[eval exp="f.flag1 = f.flag1 + 1"]
f.mojiという変数に'文字列'を入れる
[eval exp="f.moji = 'あいう' + 'えお'"]
[iscript]
f.flag1=f.flag1+1
[endscript]
変数の掛け算
スクリプトサンプルをみる
[eval exp="f.flag1 = f.flag1 * f.flag2"]
f.flag1にf.flag2を掛けてf.flag1に代入。ずっとf.flag2をかける。
[iscript]
f.flag1=f.flag1* f.flag2
[endscript]
変数の累乗
スクリプトサンプルをみる
[eval exp="tf.num = 3 * * 2"]
結果:[emb exp="tf.num"]
;3×3=9となる。
変数の割り算
スクリプトサンプルをみる
[eval exp="f.flag1 = f.flag2 / f.flag3"]
この場合は f.flag2 を f.flag3 で割った物が f.flag1 に入ります。
しかし、割り切れなかった場合は f.flag1 が実数になってしまうので、あまった分を切り捨てて整数の結果を得たい場合は、整数除算演算子
\
を用いて、
[eval exp="f.flag1 = f.flag2 ¥ f.flag3"]
と記述します。
変数にいれた文字の長さを調べる。
スクリプトサンプルをみる
[eval exp="tf.text='わわわわわわわわ'"]
[eval exp="tf.temp1=tf.text.length"]
[cm]
[emb exp="tf.temp1"]
;8と表示されます。名前入力に使えそう。→【edit】タグにおいてはmaxcharsが指定できますよ!
乱数の処理
※吉里吉里の[eval exp="f.ransuu=random"]は現在使用できません。
例:サイコロを作る(=6種類の整数を取り出したい)場合
スクリプトサンプルをみる
Math.random()で生成される乱数は0以上1未満なため、*6にすることで0以上6未満の数字が作られます。
作られた数字は小数点以下まで桁があるので、Math.floor()を利用して整数値にします。
最後に、0~5の整数になった値に1を足して1~6の値にします。
;ランダム数値の取り出し
[iscript]
tf.rand = Math.floor( Math.random() * 6) + 1
[endscript]
;ランダム数値を表示
サイコロの数字は[emb exp="tf.rand"]だよ。[p]
数を指定
最大値・最小値を引数に持つ関数を用意 例は10から20
var result = getRandom( 10, 20 );
function getRandom( min, max ) {
var random = Math.floor( Math.random() * (max + 1 - min) ) + min;
return random;
}
kagティラノスクリプト用スクリプトサンプルをみる
[eval exp="f.num=1"]
[emb exp="Math.random(f.num)*100"]
例)約(0 ~ 100) までの乱数(小数点付き☆)を取得 (100 ちょうどは取得できない)
[l]
使いにくい乱数ができあがります。
小数点切り捨てについての記述が2ページ目にあります
- 概要 配列とは。
- 変数を配列にする(配列であることを宣言する)
- 配列の中に代入し、変更する。
- 配列の中身”を”『変数に』代入する。
- 配列の中身に対して加算する
- 配列のシャッフル
- 配列の中身を追加まだわからない未
- 配列の中身を削除まだわからない未
- 配列のサイズを取得
- 配列の入れ替え
- 配列によるループ
- 二次元配列
- CSVファイルを2次元配列に読み込む
概要 配列とは。
詳細をみる
変数はひとつの値を記憶する、中身が"変わる"箱です。
その、ひとつの小さな箱(変数)をまとめて一回り大きな箱に入れます。
その箱に名前をつけたものが【配列】となります。
取り出す際には番号を伝える手順が必要ですが、
情報をひとつの箱、ひとつの変数として移動できる為、複雑なゲームには必要となってきます。
もし、a子さんのhp.mp.持ち物の変数がバラバラの状態であるとします。
複雑なゲーム作成においては、そのうちどこにどう処理したかわかりづらくなる恐れがあります。
また、b子さん.hp.mp 持ち物といったa子さん同様の配列を持っていた場合、
同じ処理をする(hp+10)ときに短い手数で高速に処理できる場合もあります。
配列を使った例として、よくあげられるものは、
カードゲーム、アイテム、rpgのキャラクターの状態 などに使われます。
配列の表示例は
[emb exp="f.hairetsu[0]"]
[emb exp="f.配列名[番号]"]
です。
番号は配列に並んだ順番を示します。0.1.2.3番目、、
番号を指定することによって、指定した配列の中身の変数に対して、
足し算や引き算、条件分岐を扱うこともできます。
配列であることを宣言する (配列の表示もあり)
[ ]と" "に注意。短いときは@を利用しましょう。
詳しくみる
;変数f.numは配列であると宣言する
[eval exp="f.num=[]"]
@eval exp="f.num=[]"
;変数f.numは配列であると宣言する(各要素の初期値付き)
[eval exp="f.num=[10,5,20,3]"]
[eval exp="f.syujinkou=['主人公名',5,20,3]"]
配列は前から0番目と数えます。表示します。10と表示されます。
[emb exp="f.num[0]"]
配列は前から0番目と数えます。表示します。主人公名 と表示されます。
[emb exp="f.syujinkou[0]"]
f.syujinkou【0】をptextに表示させます 主人公名 赤色で表示されます。vertical=trueで縦書き
[ptext layer=1 page=fore text=&f.syujinkou[0] size=30 x=180 y=150 color=red ]
配列の宣言がしてあれば宣言はしない例(システム変数に限るようです??情報募集)
システム変数などで配列を使いたい場合は、初期状態では変数はすべて void が代入されていると見なされることを利用して、
[eval exp="sf.hairetsu = [] if sf.hairetsu === void"]
これも配列。プリロード。
[iscript]
f.preload_images = [
"data/fgimage/4.png",
"data/fgimage/5.png"
];
[endscript]
配列 javascript
スクリプトサンプルをみる
[cm]
配列の練習[r][l]
;[autosave]
変数f.syujinkouは配列であると宣言する[r]
@eval exp="f.syujinkou=[]"
『@eval exp="f.syujinkou=【】"』
[r][l]
@emb exp="f.syujinkou[0]"
[trace exp="f.syujinkou"]
[r]
変数f.mは配列であると宣言する(各要素の初期値付き)[r]
【eval exp="f.syujinkou=['主人公名,5,20,3】"[r]
[eval exp="f.syujinkou=['主人公名',5,20,3]"]
f.syujinkou【0】の内容[r](配列は前から0番目と数えます。) :[l][r]
[emb exp="f.syujinkou[0]"]
[p]
f.syujinkou【0】から適当な変数f.oneName”に”渡します[r]
適当な変数をつくります。[r]
[eval exp="f.oneName='string'"]
;[emb exp="f.oneName"] [r]
f.syujinkou【0】から適当な変数f.oneName"に”渡します[r]
[eval exp="f.oneName=f.syujinkou[0]"]
表示させます[r]
[emb exp="f.oneName"] [r]
とでました。
[p]
f.syujinkou【0】をptextに表示させます....[r]
[ptext layer=1 page=fore text=&f.syujinkou[0] size=30 x=180 y=150 color=red ]
;[ptext layer=1 page=fore text=&f.oneName size=30 x=180 y=150 color=red ]
[l]
[freeimage layer=1]
[cm]
次はキャラクターの名前に配列を表示させます。[r]
メッセージボックスを用意します[p]
[position layer="message0" frame="frame.png" width=630 height=300 top=265 left=5 margint="25" marginl="10" marginr="10" marginb="15"]
[ptext name="chara_name_area" layer=message0 width="200" color=red x=50 y=280 size=16]
;ネームエリアを設定
[chara_new name="主" storage="haruko.png" jname=&f.syujinkou[0]]
;配列で名前を設定
[chara_show name="主" ]
;登場
名前を表示[p]
[chara_config ptext="chara_name_area"]
#主
表示できた?[p]
[chara_hide name="主" overwrite=true]
#
[freeimage layer=0]
[freeimage layer="message0" page=back]
[position layer="message0" frame=" " width=630 height=460 top=5 left=5 margint="25" marginl="10" marginr="10"]
[position color=black opacity=100]
配列の中に代入し、変更する。
スクリプトサンプルをみる
;変数f.mの要素0に1を、要素1に5を代入する
[eval exp="f.m[0]=1"]
[eval exp="f.m[1]=5"]
配列の要素番号を変数で指定する場合は[]の中にその変数名を記述します。
;配列f.mの要素f.選択の中身を変数f.hogeに代入する
[eval exp="f.hoge=f.m[f.選択]"]
例えばこの時f.選択が10だったとします。するとf.m[10]の中身が
f.hogeに代入される事になります。
他 連続で代入する。
[eval exp="f.hairetsu=[]"]
[eval exp="f.hairetsu[0] = 'zero', f.hairetsu[1] = 'one'"]
0 : [emb exp="f.hairetsu[0]"][r]
1 : [emb exp="f.hairetsu[1]"]
配列での名前表示を変更する。スクリプトサンプルをみる
次はキャラクターの名前に配列を表示させます。[r]メッセージボックスを用意します[p]
[position layer="message0" frame="frame.png" width=630 height=300 top=265 left=5 margint="25" marginl="10" marginr="10" marginb="15"]
[ptext name="chara_name_area" layer=message0 width="200" color=red x=50 y=280 size=16]
[chara_new name="主" storage="haruko.png" jname=&f.プレイヤー[0]]
[chara_show name="主" ]
なまえをひょうじ[p]
[chara_config ptext="chara_name_area"]
↑前項目の続き。
#主
表示できた?[p]
[eval exp="f.プレイヤー[0]='はるこ'"]
[chara_new name="主" storage="haruko.png" jname=&f.プレイヤー[0]]
#
#主
名前がそっけないよね?変えたよ[p]
スクリプトサンプルをみる
;配列f.mの要素0番目の中身を変数f.hogeに代入する
[eval exp="f.hoge=f.m[0]"]
;f.syujinkou【0】から適当な変数f.oneName"に”渡します[r]
[eval exp="f.oneName=f.syujinkou[0]"]
まとめ
; 配列を作る
@eval exp="f.love = []"
; 配列に値を代入
@eval exp="f.love[0] = 50"
@eval exp="f.love[1] = 60"
@eval exp="f.love[2] = 40"
; 配列の値を表示
aの好感度は[emb exp="f.love[0]"][r]
bの好感度は[emb exp="f.love[1]"][r]
cの好感度は[emb exp="f.love[2]"]
配列の中身に対して加算する。
まだ未確認。
スクリプトサンプルをみる
; 添え字(英語でindex)の変数
@eval exp="tf.index = 0"
*
好感度+10ループ
@eval exp="f.love[tf.index] = f.love[tf.index] + 10"
; 好感度を+10する
@eval exp="tf.index = tf.index + 1"
@jump target="*好感度+10ループ
kag版があれば情報お待ちしております。
javascript版
tf.numを配列とする
tf.num.sort(function() {
return Math.random() - Math.random();
});
javascript版 応用
[cm]
@bg storage ="room.jpg"
配列のシャッフルを行います。jsです。[l][r]
@eval exp="tf.num1=[]"
@eval exp="tf.num2=[]"
[iscript]
var y =[1,2,3,4,5,6,7,8,9,10,"j","Q","K"];
var y2 =[1,2,3,4,5,6,7,8,9,10,"j","Q","K"];
tf.num1=y;
tf.num2=y2;
[endscript]
tf.num1:
@emb exp="tf.num1"
[r]
tf.num2:
@emb exp="tf.num2"
[l][r][r]
;iscriptを超えて変数の値を参照できないのでまた入力しています。tf.変数は記憶しているので代入!
[iscript]
y=tf.num1;
y2=tf.num2;
function rand(min, max){ return min + ~~(Math.random() * (max - min + 1));};
function shuffle(x){
for(var i = 0; i < x.length - 1; i++){
var j = rand(i, x.length - 1);
var temp = x[j];
x[j] = x[i];
x[i] = temp;
}
}
shuffle(y);
shuffle(y2);
//alert(y);
//alert(y2);
tf.num1=y;
tf.num2=y2;
f.your = y2;
[endscript]
tf.num1:
@emb exp="tf.num1"
[r]
tf.num2:
@emb exp="tf.num2"
[l]
ランダムでシャッフルされます。
;-----------------------------------------------------------
;簡単に6枚のみを画像化
[eval exp="f.your_card = [] "]
[eval exp="f.your_card =[ f.your[0]+'.png', f.your[1]+'.png',f.your[2]+'.png',f.your[3]+'.png',f.your[4]+'.png',f.your[6]+'.png']"]
;画像として表示
[image storage=&f.your_card[0] layer=1 folder=image visible=true]
配列の中身を追加
kagであるのか調べ中
【push】
[iscript]
f.myFgimage = ["data/fgimage/4.png", "data/fgimage/5.png"];
f.myFgimage.push =("data/fgimage/6.png");
[endscript]
配列の中身を削除
kagであるのか調べ中
【delete】
[iscript]
var array = ["A","B","C","D","E","F"];
delete array[1];
[endscript]
【length】を使用します。
"スクリプトサンプルをみる"
[eval exp="f.num=[10,5,20,3]"]
[eval exp="tf.leng=f.num.length"]
[cm]
[emb exp="tf.leng"]
と表示されます。
[iscript]
// Array オブジェクトを作成する
var array = [0,1,2,3,4];
// 配列のサイズを取得numに代入
var num = array.length;
// 出力テスト
console.log(num);
[endscript]
配列の入れ替え
kagであるのか調べ中(情報募集中お願いします。!
>>@ko10panda様より。
▼KAGで配列の中身を入れ替える方法
;配列の宣言と評価
[eval exp="f.a = []"]
[eval exp="f.a = [0,1,2,3,4]"]
;添字0と1の中身を入れ替える
[eval exp="f.a[0] <-> f.a[1]"]
jsスクリプトサンプルをみる。
[iscript]
//
関数と引数を使用。一時変数(コピー)を使用
function swap(arr, a, b) {
var tmp = arr[a];
arr[a] = arr[b];
arr[b] = tmp;
}
var arr = ["a", "b", "c", "d"];
swap(arr, 0, 2);
alert(arr); //c,b,a,d
[endscript]
配列のループkag
詳細をみる
;初期設定
;変数に代入する。文字列はシングルクォートを忘れずに
[eval exp="f.第1周目='おけいこ0'"]
[eval exp="f.第2週目='おけいこ1'"]
[eval exp="f.第3週目='おけいこ2'"]
[eval exp="f.第4週目='おけいこ3'"]
[eval exp="f.第5週目='おけいこ4'"]
配列であることを宣言する[r]
[eval exp="f.予定リスト= [ ] "]
配列の中に必要なものを全部入れる。[r]
;配列に変数を代入する
[eval exp="f.予定リスト[0]=f.第1周目"]
[eval exp="f.予定リスト[1]=f.第2週目"]
[eval exp="f.予定リスト[2]=f.第3週目"]
[eval exp="f.予定リスト[3]=f.第4週目"]
[eval exp="f.予定リスト[4]=f.第5週目"]
;ループ用の設定 0に1は足せない
[eval exp="tf.繰り返し回数=0"]
配列数を取得する 条件に利用する[r]
[eval exp="tf.配列数=f.予定リスト.length"]
;5となるが0を数えない為
配列数を条件に利用する為-1をする[r]
[eval exp="tf.配列数=tf.配列数-1"]
[emb exp="f.予定リスト.length"] [r]
[emb exp="tf.配列数"] [r]
[emb exp="f.予定リスト[0]"]
[emb exp="f.予定リスト[1]"]
[emb exp="f.予定リスト[2]"]
[emb exp="f.予定リスト[3]"]
[emb exp="f.予定リスト[4]"]
[l]
[cm]
配列数0〜 0だけは思いつかないので普通に書くね
[emb exp="f.予定リスト[0]"] [r]
;配列数と繰返し回数が同じになるまでラベルloopにジャンプしリンクを増やす
*loop
[if exp="f.予定リスト[tf.繰り返し回数]"<f.予定リスト[tf.配列数]"]
;繰返し回数を足す
[eval exp="tf.繰り返し回数++"]
[emb exp="tf.繰り返し回数"][r]
;f.予定リストを表示する
[emb exp="f.予定リスト[tf.繰り返し回数]"][r]
@jump target=loop
;ループに飛ぶ
[endif]
;条件に合わないときは停止をかける
[s]
応用 変数による位置配置変更 配列による内容変更
詳細をみる
2017/08/05
forで横に繰り返します。iに1を足しています。繰り返す数値は i<3 の数値です。iの初期値は0です。
[iscript]
tf.rabel = ['label1','label2'];
for(i=0; i< 2; i++) {
tyrano.plugin.kag.ftag.startTag("glink",{text:'テキスト',size:15,x:10+150*i,y:80,color:"white",width:"60",height:"120",target:tf.rabel[i]});
}
[endscript]
ラベルに配列を使用しています。
連番画像を使うことでimageにも適用できます。
テキストも同様に配列で内容変更できます。
二次元配列
二次元配列とは
変数はひとつの箱ですが、さらにそのひとつの箱の中に変数(箱)をそれぞれ入れていくと配列となります。
(画像例:横軸 配列A )
更にAの箱の中に配列(画像例:横軸 配列B )を
いれていくと二次元配列、さらにいれていくと三次元配列ができます。
まずは、スリーステップ
;① 配列を作る
@eval exp="f.hairetu=[]"
f.hairetuは、配列です。
; ②配列の【0】番目に配列を作る(番号は各自変えてください)
@eval exp="f.hairetu[0] = []"
f.hairetu【0】は、配列です。
; ③配列の配列の変数に数字(または変数)を代入
@eval exp="f.hairetu[0][0] = 10"
スクリプトサンプルをみる デモゲームより
[cm]
配列の練習2[r]
『f.配列』という名前の配列を作る[r]
@eval exp="f.配列=[]"
@emb exp="f.配列[0]"
[r]
;表示に番地指定しないと止まる?
つくりました。[r][l]
変数をつくる[r]
@eval exp="f.変数='hensu'"
@emb exp="f.変数"
[r]
つくりました。[r][l]
『f.配列』配列の【0】番目に
先ほどつくったf.変数を代入[r]
@eval exp="f.配列[0] =f.変数"
@emb exp="f.配列[0]"
[r]
代入しました。[p]
ここからは、二次元配列の練習です[r][l]
『f.配列』の【1】番目に配列を作る[r]
@eval exp="f.配列[1] = []"
つくりました。[r][l]
『f.配列』の 配列の"中に" 配列を 作りましたので[r]
f.配列のインデックス番号【0】【1】を指定して数値代入[r][l]
@eval exp="f.配列[1][0] = 10"
@eval exp="f.配列[1][1] = 11"
代入しました。[r][l]
f.配列のインデックス番号【0】【1】を指定して表示[r]
@emb exp="f.配列[1][0]"
[r]
@emb exp="f.配列[1][1]"
[r]
表示されてますね[l]
変数にいれた文字の連結
スクリプトサンプルをみる
[eval exp="f.flag2 = 'hoge'"]
[eval exp="f.flag3 = 'une'"]
[eval exp="f.flag1= f.flag2 + f.flag3"]
[eval exp="f.myoji='初音'"]
[eval exp="f.namae='ミク'"]
[eval exp="f.full_name=f.myoji + f.namae"]
[chara_ptext name=&f.full_name]
;初音ミクと表示される
数値の変数を文字列に変換
スクリプトをみる
;例: 数値の変数f.numを用意します。1は仮の適当な数値です。
[eval exp="f.num=1"]
;文字に変更し、f.number_letterという名前の変数にいれる。
[eval exp=" f.number_letter = f.num +'' "]
;以降文字として認識される
;その他のこと
;f.numは引き続き数値の計算ができるように文字列にしないようにしています。
;以降のf.number_letterには文字を足すことができます。
以下の方法でも可能です。
[iscript]
String(num);
num.toString(10);
num.toFixed() ;
[endscript]
この記事についての引用元
ゲーム画像は管理人作ゲームのものです。
ティラノスクリプトは© Copyright ShikemokuMK All Rights Reserved.のものです。