今回はマウスのブロックを使ったゲームを見ていこう
まずはこちらのURLからゲームを確認してね
http://scratch.mit.edu/projects/29617182/
WS0007
でゲームスタートすると
「レベル1:オーブにタッチしよう」
「レベル2:オーブをよけよう」
「レベル3:オーブをクリック」
「レベル4:オーブを追いかけろ」... というように色々なステージが用意されている。

このゲームの中身はどうなっているか「中を見る」で確認していこう 

ステージごとにスプライトを作っている

スプライトリストを見ると、「Level one(レベル1)」から「Level six(レベル6)」まで
ステージごとにスプライトを設定している。
このように作っていると、デバッグするときに見やすいね。
WS0008

さっそく、レベル1のスプライトをクリックしてスクリプトをチェック。

定義ブロックとは?

最初に目につくのがこのブロック
紫色の「定義ブロック」をつかっている。
 WS0009
定義ブロックというのは、他言語でいう所の関数のようなもので
自分で引数などもカスタマイズできる。

この定義ブロックを作っておくと、くりかえし同じ動作をするときに
いちいち長いスクリプトを書かなくてもよくなるというのが利点。
あとは、単純にスクリプトの内容がわかりやすいのも利点のひとつ。

このブロックだと「ゲームが始まったらずっとポーズチェックをする」というのが
一目でわかるね。 

マウスのx座標y座標をしらべるブロック

「pause check(ポーズチェック)」の中身はこんな感じ。
WS0010
ちょっと横に長いので、条件は省略するけれど、要するに
①マウスポインタが画面の外に出ているか
  (マウスのx座標が-240か240 マウスのy座標が-190か190)をチェック
②出てたらポーズフラグ(Paused)を1にする
 というスクリプトだね。

ここで出てくるのが調べるブロックの「マウスのx座標」「マウスのy座標」 
このブロックは単体で使うことはできなくて
このように演算ブロックなどと組み合わせて使うよ。 

ステージ1のゲーム

message1を受け取ったとき 以下のブロックが
ステージ1のゲームが始まるときのプログラムだよ。
WS0011
最初の部分は、文字を出す演出のプログラムなので説明は省略
(どうせアレンジするときは別の演出になるので)

下の部分のコスチュームを変えたところからが
実際のゲームに関連したプログラム。
WS0012
ステージに次々と、オーブのクローンを作っていって

WS0013
クローンに「マウスポインターが触れた」
スコアを増やして、オーブがだんだん消えていく演出をしているね。
この調べるブロックの「マウスポインターが触れた」ブロックも
単体では使えないので、「もし」ブロックなどと組み合わせて使用するよ。

クローンされたときの「場所」や「大きさ」は
別の「クローンされたとき」ブロックで設定しているよ。 

ステージ2以降も作り方は同じ

ステージ2以降も、基本的な作りは同じで
クローンされたあとの処理を変えることで、違うステージに仕上げているよ。
WS0015
(ポーズチェックは見づらいので割愛しました)
ステージ2はオーブから逃げるゲームなので
「マウスポインターへ向ける」+「10歩動かす」の組み合わせで
マウスポインターに迫ってくるオーブにしているね。
画面端につくまで逃げ切れたらスコアアップだね。


WS0016
レベル3はオーブをクリックするステージなので
「マウスが押された」ブロック + 「マウスポインターに触れた」の組み合わせで
オーブにさわっているときにクリックされたかどうかを判定しているよ。



今回は、すごく見やすいコードながらも、コードの多さから中級者コースと判断しました!
でも内容はとってもシンプルなので、Scratchになれてきた方には
おススメのゲームだと思います。

マウスポインター関連ブロック マスターできたでしょうか?
ソースコードをみて研究してみて下さいね!


これより先はプライベートモードに設定されています。閲覧するには許可ユーザーでログインが必要です。