条件分岐の簡略化

アバター
mikan
記事: 5
登録日時: 2018年5月06日(日) 20:27

条件分岐の簡略化

投稿記事by mikan » 2019年10月11日(金) 06:13

すみません、素朴な疑問なのですが、
このような条件分岐+変数の操作をスクリプト等で1行〜数行にまとめたりすることは可能でしょうか?
あるいはそのような操作ができるプラグインは無いでしょうか?
もう少し見た目をスッキリさせられたら良いなと思いまして…。
添付ファイル
スクリーンショット 2019-10-11 6.02.18.png
スクリーンショット 2019-10-11 6.02.18.png (43.38 KiB) 閲覧数: 276 回

ジャングル
記事: 108
登録日時: 2018年12月30日(日) 14:51
お住まい: 自動販売機

Re: 条件分岐の簡略化

投稿記事by ジャングル » 2019年10月11日(金) 07:59

// 三行 (代入する値を配列に入れておき、汎用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)]);
奏ねこま
記事: 588
登録日時: 2016年1月20日(水) 20:04

Re: 条件分岐の簡略化

投稿記事by 奏ねこま » 2019年10月11日(金) 09:04

汎用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;
}

こんな感じで。
アバター
mikan
記事: 5
登録日時: 2018年5月06日(日) 20:27

Re: 条件分岐の簡略化

投稿記事by mikan » 2019年10月12日(土) 05:02

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

“MV:質問” へ戻る