この記事のポイント
「もし」ブロックを使って、条件分岐ができるようになります。
はじめに
前回の記事まででスプライトキャットくんがピコくんから逃げるゲームをつくりました。
今回は、さらにゲームっぽさを出すためにピコくんにつかまったら「ゲームオーバー」にするようにプログラムしていきます。
今回は「もし」ブロックを使います。
「もし」ブロックを使うと、一気にプログラミングの幅が広がります。超重要です!でもカンタンです!
前回の記事
前回は、スプライトを増やす方法を説明しました。こちらから復習できます。
スクラッチを最初から始めたい方は、こちらからスグに始めることができます。
完成作品
今回の完成作品はこちらです。スプライトキャット君がピコ君につかまると、ピコ君がゲームオーバーと言って、ゲームが終了します。試しにピコ君につかまってみてください。
今回のプログラムはこちらです。「ずっと」ブロックの中に、「もし」ブロックが追加されています。
プログラミング
プログラムの組み立て
今回追加させたいプログラムの動きは、このようになります。
【ピコ君】
- もし、スプライトキャット君にふれたら、
- 「ゲームオーバー」と言って、
- スクリプト(プログラム)を停止する。
【スプライトキャット君】
- もし、ピコ君にふれたら、
- スクリプト(プログラム)を停止する。
いきなりプログラミングを開始するのではなく、最初に動きの内容を考えてからプログラミングを始めると間違えることが少なくなります。これを「仕様をつくる」といいます。開発現場では重要な作業です。
「もし」スプライトが他のスプライトに触れたら をプログラムする
まずは、「もし」ブロックを追加します。「もし」ブロックは、「制御」カテゴリーにあります。
スプライトキャット君とピコ君の「ずっと」ブロックの中の一番下に、「もし」ブロックを入れます。
スプライトキャット君とピコ君の両方のスクリプトに「もし」ブロックを入れるのを忘れずに!
「もし」の条件を追加する。
「もし」ブロックの機能は、「もし〇〇なら、△△する」です。 これがとにかく基本です。
ここでは、「〇〇なら」の条件を入れます。
条件に使うブロックは、「調べる」カテゴリーのブロックを使います。「調べる」カテゴリーのブロックで「もし」ブロックの条件に使えるものは、ダイヤ形をしています。
「もし」ブロックのダイヤのくぼみにピッタリはまりそうですね。
今回の条件は、「ほかのスプライトに触れたら」なので、「調べる」カテゴリーの「〇〇に触れた」ブロックを使います。
- 〇〇に「ほかのスプライト」をえらぶ(スプライトキャット君のスクリプトなら、ピコ君を選びます。)
- 「〇〇に触れた」ブロックを、「もし」ブロックのくぼみにはめる。
ピコ君のスクリプトも同様にします。このような感じになればOKです。
「もし」になったときの動作を追加 スプライトの動作(スクリプト)を止める。
次に「もし」が起こった場合の動作を追加します。
今回は、もしスプライトキャット君がピコ君につかまったら(触れたら)、ゲームオーバーにさせたいので、スクリプト(プログラム)を止めるようにプログラムすればよいです。
スクリプトを止めるためには、「制御」カテゴリーの「このスクリプトを止める」ブロックを使います。
- 「止める」ブロックで「このスクリプトを止める」を選ぶ
- 「もし」ブロックの中に入れる。
「このスクリプトを止める」ブロックの追加をスプライトキャット君、ピコ君両方で行います。
これで、ピコ君がスクリプトキャット君をつかまえる(触れる)と、スクリプト(プログラム)が停止してゲームオーバーとなります。
スプライトに会話させる。
スクリプト(プログラム)が止まると、画面が急にフリーズして壊れてしまったと思ってしまうので、最後にピコ君に「ゲームオーバー」と言うようにしてあげましょう。
スプライトに何か言わせるためには、「見た目」カテゴリーの「〇〇と△秒言う」ブロックを使います。
以下のようにプログラムしてください。
- 〇〇(こんにちは!と入っていると思います)に「ゲームオーバー」と入力する。
- 「もし」ブロックの中の1番上に入れる。
これで、ピコ君がスプライトキャット君を捕まえたら、ピコ君が「ゲームオーバー」と言って、ゲームが終了します。
今回はここまでです。お疲れ様です!
【復習】今回初めて使ったブロック
【プログラミング知識】【重要!】もし=条件分岐
「もし」は、プログラミングではよく「条件分岐」と呼ばれます。
カンタンな例で言うと、「もし天気が雨の場合、かさを持っていく」ということが条件分岐です。
条件分岐はプログラミングの3大要素のうちの1つです。プログラミングの3大要素は以下の3つです。
- 順序処理
- 繰り返し処理(ずっと)
- 条件分岐(もし)
じつは、既に「順序処理」と「繰り返し処理」は学んでいます。なので今回の「順序処理」を学んだことで、プログラムの基礎的な部分はすべて習得できたことになります。
プログラムはこの3大要素を組み合わせて作っています。今はやりの人工知能もこの組み合わせにすぎません。
より詳細に条件分岐を学びたい方はコチラの記事も読んでみてください。
次回
次回はオリジナルのスプライトのつくり方を説明します。ついにろぼてくが画面を走り回ります!
コメント