ScratchDojo/小中学生のプログラミング&電子工作/天白

小中学生のプログラミング&電子工作道場

ScratchText 002 Events

はじめに

Scratchはイベント駆動のプログラミング言語といわれます。ある出来事(イベント)が起きた時にどのような動作をするかを記述して、全体のプログラムを作っていきます。Scratchではキーボードの動き、マウスの動作などが外部入力として使われて、その時どうするかというスクリプトを書きます。内部的なイベント、例えば二つのスプライトがぶっつかったとかの場合、メッセージをだして、イベントが起きたよということを知らせます。

イベント説明のプロジェクトを作ってみました。下記をクリックしてください。

ステージのイベント

とりあえず、背景を3つ準備しました。 1. 背景1:最初から準備されている背景で、この上にタイトルなどを書きます。

2. space :地球上を想定しています。ここがシューティングゲームの主ステージです。

3. moon :ある条件でステージを月面に変えます。

これを実現するスクリプトとして次のようにしました。

図の左側のブロックがイベントに対して使えるブロックです。

最初のイメージに従って、次のようにしています。

1. 背景1: 緑の旗をクリックで背景1です。緑の旗は初期状態の設定です。

2. space :画面をクリックしてスタートとしました。「スタート」のメッセージを出します。緑の旗で初期設定をして、「スタート」メッセージでゲーム開始とする習慣をつけたらいいかと思います。この時、背景を主ステージのspaceにしました。

なお、画面クリックの代わりにスペースキーをクリックするなどもいいでしょうが、スペースキーはほかでもいろいろと使い道がありそうです。

3. moon :音量のイベントを使ってみました。外部の音の音量でゲームに熱中して大きな音になるとゲーム中断のイメージです。背景をmoonにしました。

スプライトのイベント

今回のシューティングゲームでは、弾を発射するところまでで、つぎの3つのスプライトを使っています。

Spaceshipのスクリプトは次のようにしています。

 1. 初期設定で緑の旗とスタートメッセージで2種類の設定をしています。

2. 背景が「背景1」、「space」、「moon」でこのスプライトを「消す」、「表示する」の区別をして、さらに表示状態を変えています。

3. 上矢印キーで、弾スプライトのクローンを作っています。Text001では自分自身のクローンを使いましたが、こちらでクローンを作った方がわかりやすくなるかと思います。

4. 右向き、左向き矢印キーで左右に動かします。単純に10ずつ左右に動かすのではなく、キーの特性を考慮して、ちょっとした飾りを付けています。とりあえずはこのまま、使ってください。

以上のばらばらに書かれたイベントに対応するスクリプトが全体として一体として機能するのがイベント駆動といわれるプログラミングの書き方です。

弾のスクリプトは次のようにしています。

注目点は次の二つです。

1. クローンを作るために、最初から「隠す」して、クローンされたとき「表示する」としています。このクローンの使い方はText001と同じです。

2. 「ずっとSpaceshipへ行く」でSpaceshipと一体化しています。

スプライト2は次のようにしています。

これは背景1の時だけ、このタイトルを表示するということですね。

まとめ

イベントブロックの使い方を簡単に見てきました。プログラミングで一番大事なことはステージで大まかのストーリーを準備してから作品を作っていくということのような気がします。

是非、初期設定は習慣づけてください。

記事:松成 文夫