真偽値型の変数を利用する
主人公をジョイスティックを使って動かして遊ぶゲームを作ります。
例えばこのような画面で
- いくつかある障害物のところは通れない。
- 途中でアイテムを取ってからでないと、ゴールできない。
という条件で作ることにします。
例えば
- アイテムを取った後では障害物の1つは通れる
ことにすれば上の画面でもゴールできるようになります。 (他のアイデアでもかまいません)
変数の利用
アイテムを取ったかどうかを 真偽値型の変数を用いて表すことができます。
主人公の変数「アイテムを持っている」を
- アイテムを取る前は値が「いいえ」
- アイテムを取った後は値が「はい」
となるようにして使います。
こうしておくと、 アイテムを取った後か取る前かを、変数の値を参照するだけで判定でき スクリプトが簡単になります。
主人公のビューアを開き 変数を作成します。
- 変数名をわかりやすくつけます
種類を真偽値型にします
このようになります。
値は「はい」「いいえ」のどちらかです。
ジョイスティックで動かす
主人公をジョイスティックで動かせるようにします。
単純な例を示します。
くわしくはジョイスティックのページを参照してください。
障害物にぶつかったとき
障害物のところは通れないようにします。
障害物に当たったかどうか判定し、 あたっていないときだけ動けばよいので このように書けそうですが……
この方法では 障害物に当たったら そのあとずっと動けなくなってしまいます。
考え方
とりあえず動かしてみて、 障害物にぶつかったら直前の位置にもどせばよい。
例えば、右へ移動してぶつかったときは、同じ値だけ左へ移動すれば元の位置にもどります。
ジョイスティックで動かしているときも、 この考え方でスクリプトを書けます。
スタートボタン
スタートボタンが押されたときは
- オブジェクトを指定の位置に配置したり、
- 必要なスクリプトをスタートさせる
などの処理を行いますが、それに加えて
変数「アイテムを持っている」の値をいいえにしておきます。
アイテムを取ったとき
アイテムを取ったとき 変数「アイテムを持っている」の値をはいに変えます。
アイテムを取った後
変数「アイテムを持っている」の値により処理を変えます。
障害物にぶつかったときの処理のうち
- 次の内容についてはアイテムを取る前では行うが、アイテムを取った後では行わない、
ようにする場合を例として説明します。
真偽値型の変数はテストの内容としてそのまま使えます。
- テストの右に変数の名前の部分をドラッグして入れます。
このテスト結果がいいえのときだけ 処理を行えばよいので、 対応する内容のタイルをいいえの後ろに配置します。
このようになります。
これを読むと
- 主人公がアイテムを持っているが
- いいえのときで
- 障害物と重なったときは
- 音をならす
- 障害物と重なったときは
- いいえのときで
です。つまり
- 主人公がアイテムを持っていなくて、障害物と重なったときは音をならす
となります。
アイテムを何にするかや、 アイテムを取ったあとの動作は 自由に考えて実現しましょう。
次回続きを作り、ゲームを完成させます。