ページ 11

【解決】条件分岐の簡略化

Posted: 2019年10月11日(金) 06:13
by mikan
すみません、素朴な疑問なのですが、
このような条件分岐+変数の操作をスクリプト等で1行〜数行にまとめたりすることは可能でしょうか?
あるいはそのような操作ができるプラグインは無いでしょうか?
もう少し見た目をスッキリさせられたら良いなと思いまして…。

Re: 条件分岐の簡略化

Posted: 2019年10月11日(金) 07:59
by ジャングル
// 三行 (代入する値を配列に入れておき、汎用1の値をその添え字にします)
var data = [null, 111, 222, 333];
var gp1 = $gameVariables.value(1);
$gameVariables.setValue(6, data[gp1]);

// 二行 (値はその場に直接記述しない方が良いですが)
var gp1 = $gameVariables.value(1);
$gameVariables.setValue(6, [null, 111, 222, 333][gp1]);

// 一行でいくなら
$gameVariables.setValue(6, [null, 111, 222, 333][$gameVariables.value(1)]);

Re: 条件分岐の簡略化

Posted: 2019年10月11日(金) 09:04
by 奏ねこま
汎用1の値と汎用6に代入する値がご提示通りのものであり、汎用1は1〜3の値しか絶対に入らないということであれば

$gameVariables.setValue(6, $gameVariables.value(1) * 111);

という書き方もあると思います。
ご提示の値はあくまで例であり、汎用1と汎用6はさまざまな値を取るということであれば

switch($gameVariables.value(1)) {
case 1: $gameVariables.setValue(6, 111); break;
case 2: $gameVariables.setValue(6, 222); break;
case 3: $gameVariables.setValue(6, 333); break;
}

こんな感じで。

Re: 条件分岐の簡略化

Posted: 2019年10月12日(土) 05:02
by mikan
ジャングル様、奏ねこま様、ご回答ありがとうございました!
どちらの方法でも想定通りに動かすことができました。
おかげさまでイベントの内容をかなりスッキリさせられたうえ、
今後の制作の時短にもなりそうです。感謝します!