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