スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カテゴリ : スポンサー広告

KAGで配列を使う(1) - 配列とは?

別の記事を書いていて、配列使えないのはすごい不便なことに気付いた。
一応初心者向けの記事なので説明なしで使っていいものなのか迷った……ので簡単な説明を書いておきます。
大抵の人は既に知っているだろうし検索すればもっといい説明もあると思います。
使ってみるとなかなか便利なので知らん人は知っときましょう。
・配列とは?
変数はみなさん使ったことがあると思います。
配列とは変数が何個も連なったものです。
具体的な使い方を見てみます。

ヒロイン3人(大路楓、麻倉佳奈、三毛栞)の好感度を変数で管理したいとします。
f.love_kanade、f.love_kana、f.love_shiori、と変数を3つ使ってもいいのですが、配列を使って管理することもできます。
さっそくですが例としてKAGスクリプトを出します。説明は↓の方へ。
; 配列を作る
@eval exp="f.love = []"
; 配列に値を代入
@eval exp="f.love[0] = 50"
@eval exp="f.love[1] = 60"
@eval exp="f.love[2] = 40"
; 配列の値を表示
楓の好感度は[emb exp="f.love[0]"][r]
佳奈の好感度は[emb exp="f.love[1]"][r]
栞の好感度は[emb exp="f.love[2]"]

このスクリプトをfirst.ksにコピーして実行すると、
  楓の好感度は50
  佳奈の好感度は40
  栞の好感度は60
と表示されます。

配列を使うには、変数に [] を代入します。(f.love = []の部分)
すると代入された変数は配列(=変数が何個も連なったもの)として使うことができるようになります。
連なっている変数(ここでは3人分の好感度なので3個連なっている)それぞれは添え字をつけると使うことができます。
添え字というのはf.love[0]の[0]の部分です。
今回は変数を3個使いたいので添え字の数字は0~2ですが、必要なら1000個(この時添え字の数字は0~999)使っても大丈夫です。
添え字は1からではなく0から始まることに気を付けてください。
添え字をつければただの変数と同じように使えるので、代入や計算も通常の変数と同じように出来ます。
今はf.love[0]を楓、f.love[1]を佳奈、f.love[2]を栞の好感度として扱いました。

↓何故か図解(赤が添え字、黒がそれぞれの変数に実際に代入した値、黒い円それぞれは普通の変数と同じです
array


・何故配列を使うのか?
配列はただ変数が集まっているだけというならf.love_kanade、f.love_kana、f.love_shiori、の3つを使っていればいい気がします。
配列が便利な点の1つは、添え字でそれぞれの変数を使うことができるという点です。

例えば全員の好感度を+10する場合
@eval exp="f.love_kanade = f.love_kanade + 10"
@eval exp="f.love_kana = f.love_kana + 10"
@eval exp="f.love_shiori = f.love_shiori + 10"

このように書いてもいいのですが、変数が大量になってくると書くのも大変です。
配列を使って好感度を管理していれば以下のように書けます。
; 添え字(英語でindex)の変数
@eval exp="tf.index = 0"
; 好感度を+10する
*好感度+10ループ
@eval exp="f.love[tf.index] = f.love[tf.index] + 10"
@eval exp="tf.index = tf.index + 1"
@jump target="*好感度+10ループ" cond="tf.index < f.love.count"

配列f.loveの添え字に、変数であるtf.indexを使っています。
最後のjumpタグで「*好感度+10ループ」ラベルまで戻り、繰り返しf.love[tf.love]に+10していきます。
tf.indexは0,1,2,...と1ずつプラスされているので、結果的にf.love[0]、f.love[1]、f.love[2]全てが+10されます。

最後のjumpタグには条件式condがついていますが、これはtf.indexがf.love.countより小さい間はjumpするという意味です。
f.love.countとは、配列f.loveの中に入っている変数の個数です。つまり今の場合は3です。
※配列名(ここではf.love、添え字は付けないので注意)に「.count」をつけると配列の中に入ってる変数の個数となります。
※ついでに言うと「配列の中に入っている変数の個数」のことを「配列の大きさ」といいます。
まとめるとtf.indexが3より小さい間は「*好感度+10ループ」へジャンプします。
よく分からんという人は、それぞれの変数がどのように変わっていくのか紙に書いて追っていくといいと思います。

配列を使った場合、ヒロインが10人、20人いようがスクリプトを全く変えずに好感度+10することができます。
※f.love.countは配列の大きさが大きくなれば勝手に増えるので、それに合わせてtf.countの上限も上がっていきます。
個別に変数を用意する場合、新たにevalタグを書き足さなければなりません。
今回のように添え字に変数を使えば、配列に入った変数それぞれに対して同じ処理を簡単に行うことができます。
まだよく分からないかもしれませんが、次回以降他の例も挙げてみたいとおもいます。
まあ使ってれば便利さは分かってきます。

では今回はここまで。



配列の使用例
pbgmマクロ(3) - 配列の利用
スポンサーサイト

タグ : 吉里吉里 KAG TJS 講座

カテゴリ : KAG

コメントの投稿

非公開コメント

最新記事
カテゴリ

openclose

記事一覧
Twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。