walkImo カスタムワールド制作記録 part74

最近の記事はホーライワールドの進捗報告ばかりだったので、
たまには別のことを書きたいと思います
そうだな…今回は「変数」について書こうかな

カスタムワールド制作記録をpart74も書き続けてきましたが、
変数についてガッツリ触れた記事はあまりなかったと思います
理由は、ホーライワールドを作り始める前に1年くらいショウルーム制作をやっていたから
当時はバッファ変数でいろいろやっていましたね…
ショウルーム制作は結構前のことなのであんまり覚えていませんが、
過去に直面した問題や悩み事を振り返ろうと思います

演算について
最初に自分が疑問に思ったことは、
「条件文で使える演算」と「本文で使える演算」って何?ということ
pdata0に1を加算する場合、
条件文だと「value1adn0」とか、本文だと「{pdata0add1}」とかで加算できますね
これ、どっち使えばいいの?何で書き方が違うの?とか思っていました
それと、条件文で変数に値をセットできるのも違和感がありました
条件文って、「A=BならCをやる、それ以外ならDをやる」みたいに、
変数の比較を行うものだと思っていたので、
「Xに4をセットし、かつA=BならCをやる」みたいな条件文ってよく分からない
これ、A≠Bの場合でも左から処理を流しているみたいなのでXに4がセットされます
「A=B、かつXに4をセットしたらCをやる」だとセットされません…分かりづらいよね
同じ処理を書くなら、条件文を流す前にXに4をセットしてから「A=Bか」を比較するかな

条件文の疑問がずっと頭に残っていたため、
基本的に変数の書き換えは本文でやっていました

%txtevstart,JP
{pdata0rnd10}最初の画面です。{c}次へ%next{ev},,,,,
%txtnext,JP,pdata0upv5
2番目の画面です。pdata0 > 5 です。{c}さようなら%bye{ev},,,,,
%txtnext,JP
2番目の画面です。pdata0 <= 4 です。{c}さようなら%bye{ev},,,,,

こんな感じでね
上の例は最初の画面でpdata0に1~10の乱数をセットし、
2番目の画面は「pdata0 > 5か」を比較して表示する内容を変えています
pdata0の値書き換えは本文でやっていますね
これを条件文でやろうとすると下のようになります

%txtevstart,JP
最初の画面です。{c}次へ%next{ev},,,,,
%txtnext,JP,value10rdn0,pdata0upv5
2番目の画面です。pdata0 > 5 です。{c}さようなら%bye{ev},,,,,
%txtnext,JP
2番目の画面です。pdata0 <= 4 です。{c}さようなら%bye{ev},,,,,

簡単な処理ならそんなに気にすることはないんですけど、
条件文が複雑になると当然ミスりやすくなる
比較と書き換えをごちゃまぜに条件文に書くのはあんまり好きじゃないかな
値のセットを本文だけでやっていれば、
どこで値が書き換わったのか特定しやすくなるからね

と、ここまで本文での書き換えをオススメしてきましたが、
どうしても条件文で書かざるを得ない状況というのもあります

%txtevstart,JP,value10rdn0,pdata0upv5
最初の画面です。pdata0 > 5 です。{c}さようなら%bye{ev},,,,,
%txtevstart,JP
最初の画面です。pdata0 <= 4 です。{c}さようなら%bye{ev},,,,,

このような「条件文を流す前に本文を流せない」状況では本文で書き換えができない
これはもう選択の余地がないよね
選択肢会話での演算ならば、
最初の例のように「2番目の画面」で条件文を流せばいいけど、
%txtDead,JPみたいな本文を事前に流せない場合は条件文で書いています
基本は本文で、本文流せない場合は条件文で書くというのが、私の書き方ですね

長くなりそうなので今回はここまで
また機会があれば変数について書こうかな
※感想や質問等は掲示板へどうぞ (パスワード:elona9nm)
スポンサーサイト



0 コメント

コメント投稿

dispLog
  •  
  •  
  • Lafrontier presents Elona ver1.22. Welcome traveler!