お久しぶりです。
先日は「人と科学の未来館サイピア」でプログラミングワークショップを行いました。
今後も定期的に開催する予定ですので、興味がある方は参加してみて下さいね。

さて今回は「マウスのポインターへ行く」のブロックを使わずに
マウスにゆっくりついてくるキャラを実装してみましょう。
参考にするゲームはこちら「A v o i d
WS0000
(リンク切れのときはこちら)

自キャラがマウスにふわーっと寄ってきます。
敵キャラもマウスに近づいてきますので、自キャラが敵キャラにあたらないように
逃げまくるゲームです。

「マウスのポインターへ行く」ブロックだと、マウスにピッタリくっついて離れないので
マウスにふわふわ~っとついてきてほしいときには使えませんよね。
では、どのようにプログラミングすればよいでしょうか?

↓↓続きを読む↓↓ をご覧ください 
 

自キャラがゆっくり寄ってくるには

まずは自キャラの準備をしましょう。
WS0001
「avoider」と書かれているのが自キャラです
好きな絵を用意して下さい。

WS0003

「Startを受け取ったとき」がゲーム開始です。
ずっと「マウスポインターへ向ける」と「8歩」動かすの繰り返しですね。
キャラクターが○なので向きがよくわかりませんが
ネコなどのキャラクターにしてみると、マウスの方を向いていることがわかります。

これで、マウスの方に向いて動くことができます。
8歩の部分の数字を大きくするとキャラは速く動きます。

さて、これらのブロックを囲んでいる「もし」の条件はなんでしょうか?
04
マウスのx座標が、キャラのx座標と±4以上離れているとき、や
マウスのy座標が、キャラのy座標と±4以上離れているとき、にだけ
キャラが進むように設定されていますね。

こうすることで、マウスが止まればキャラも止まり
マウスが動けば、キャラのほうも少しずつ(8ずつ)進む事になります。

この条件をこまかく設定すれば
マウスが遠くにいるときは早く動き、近くにいるときはゆっくり進むなど
キャラの動きをアレンジすることもできますね。

敵キャラのうごき

敵キャラの動きも見てみましょう。
WS0001
Sprite1が敵キャラです。

こちらが敵キャラのスクリプト
WS0002
敵キャラの登場にはクローンを使っています。
難易度を上げるために、 15匹以上敵が出ると、敵の出現する間隔が短くなり
また20匹出たら短くなり・・・というようにだんだん敵の出現する時間を短くしています。

クローンされたあともシンプルで
色や登場する場所をランダムにし
そのあとはずっと「avoider(自キャラ)に向ける」→3歩動かすをくりかえします
敵キャラが自キャラにふれると、ゲームオーバーです。

さいごに

Scratchでは、座標での当たり判定をしなくても
キャラ同士の当たり判定ができるので、あまり意識したことがないかもしれませんね。

Scratch以外のゲーム制作では、お互いの座標同士をつかった
当たり判定をする場面もありますので
座標のあつかいにも慣れておくとよいかもしれません。 

座標がニガテな子も多いのですが
スクリプト編集モードで、ステージにマウスを持っていくと
WS0005

ステージ右下に、マウスの座標が表示されるので
プラス、マイナスが分からなくなったときには
ココを見るとすぐにわかりますね。

キャラの配置にも役立ちますので、ためしてみて下さいね。