変数の準備と、1枚目のランダム選択処理を作る
変数を使って、ランダムにカードを選ぶ処理を作っていきます。
この後操作するシナリオを切り替えるので、まずは保存ボタンを押して、「保存しました」表示が消えるまで待ってから作業を進めてください。
保存中にシナリオを切り替えると、シナリオファイルの保存に失敗してしまいますのでご注意ください。
変数の準備
最初に変数を準備します。ビルダー画面の上部のメニューバーから「プロジェクト」→「変数管理」の順にクリックして、変数管理画面を表示してください。
たくさんありますが、box以外は各カード名に合わせた変数です。
「box」は仮データを入れておくために使います。
全ての変数で以下のように設定してください。
- 初期値は半角数字で「0」を入れる
(全角の「0」を入れると、文字扱いになってしまうので要注意) - 「システム変数」にはチェックを入れない
この段階では、全部で11個です。初期値の入れ忘れに注意してください。
ランダムでラベルに飛ぶ仕組みを作る
ランダム選択する処理を「scene1」シナリオに足すと長くなってしまうので、ファイルを分けます。
画面左側の「シナリオ」タブを選択→「シナリオ追加」ボタンを押して新しいシナリオファイルを準備してください。
ここではファイル名を「answer」としています。
スクリーンショットは残したままになっていますが(^^;
最初から1番上にある「テキスト」コンポーネントは使わないので削除しておいてください。
流れを図にしてみました。
まずは変数の中身をすべて0にしておきます。
そのあと、乱数を準備して、どれか1つのラベルへジャンプ。各ラベルにはこのあと「選ばれたカードに行う処理」を足していきます。
これを4枚分繰り返します。
(7/24 追記しました)
最初に、「変数設定」コンポーネントを持ってきます。
- 変数:(各カードの変数)
- 操作:「代入」
- オペランド:「定数」・「0」
これをカードの枚数分作っておきます。
繰り返しプレイするときに、変数のデータを次のプレイに残さないためです。
いよいよランダムの処理を作っていきます。「変数設定」コンポーネントを持ってきて、以下の通りに入力してください。
- 変数:「box」
- 操作:「代入」
- オペランド:「乱数」・「1~10」
最後を「1~10」とするのは「10個(=カードの枚数)の数字」が出てくるようにするためです。
カードの枚数が違う場合は変更してください。
「反映」ボタンの押し忘れに気を付けて。
これで、boxに1~10のどれかの数字がランダムに入るようになりました。
10枚のカードから1枚を選ぶために、先ほどboxに入れた数値を使ってジャンプ(分岐)します。
ジャンプするために、まずはカードごとに別の(=10個の)「ラベル」コンポーネントを「変数設定」コンポーネントの下に準備します。
合わせて、「変数設定」コンポーネントの上にも1枚目の処理開始の目印に「ラベル」コンポーネントを作っておきます。
(画面の「First」ラベル)
「ジャンプ」コンポーネントはラベルが先にないと設定しにくいので、1枚目の処理が終わった後のラベルも「10」ラベルの下に作成しておきます。
- 2枚目開始:Second
- 3枚目開始:third
- 4枚目開始:fourth
- 処理終了:end
ラベルの準備が終わったら、一度保存ボタンを押しておきましょう。
次は各ラベルにとぶための「ジャンプ」コンポーネントを10個、「変数設定」コンポーネントの下に作ります。
- 「実行条件を設定する」にチェックを入れる
- A:「box」
- B:「定数」・(1~10のうち数字1つずつ)
- 条件:「AとBが同じ場合」
boxには1~10のどれかひとつが入っているので、10個のラベルのうちどれか一つに飛ぶ仕組みがこれで出来上がります。
各ラベルで、カード名の変数に横位置の数値を入れる
今度は各ラベル(カード)ごとの処理を作ります。
カードとセットで使う、カードと同じ名前の変数に数値を入れます。
今は1枚目の処理なので、使う数値は「300」です。
「変数設定」コンポーネントを持ってきて、各カードに対応した変数に先ほど作った画面で決めた1番左の「左位置」の数値(300)を入れます。
- 変数:(各カードの変数)
- 操作:「代入」
- オペランド:「定数」・「300」
全て入力したら反映ボタンを忘れずに。
あとは、2枚目の処理のラベル「second」への「ジャンプ」コンポーネントを入れたら完了です。
これをカード枚数分作っていくと、左のようになります。
ラベル→変数設定→ジャンプ、の繰り返しになりますが、変数がちゃんと全部別のカードの変数が使われているか、よく確認してください。
1枚目を選ぶ処理は、これで完了です。