お久しぶりです。
先日は「人と科学の未来館サイピア」でプログラミングワークショップを行いました。
今後も定期的に開催する予定ですので、興味がある方は参加してみて下さいね。
さて今回は「マウスのポインターへ行く」のブロックを使わずに
マウスにゆっくりついてくるキャラを実装してみましょう。
参考にするゲームはこちら「A v o i d」

(リンク切れのときはこちら)
自キャラがマウスにふわーっと寄ってきます。
敵キャラもマウスに近づいてきますので、自キャラが敵キャラにあたらないように
逃げまくるゲームです。
「マウスのポインターへ行く」ブロックだと、マウスにピッタリくっついて離れないので
マウスにふわふわ~っとついてきてほしいときには使えませんよね。
では、どのようにプログラミングすればよいでしょうか?

「avoider」と書かれているのが自キャラです
好きな絵を用意して下さい。

「Startを受け取ったとき」がゲーム開始です。
ずっと「マウスポインターへ向ける」と「8歩」動かすの繰り返しですね。
キャラクターが○なので向きがよくわかりませんが
ネコなどのキャラクターにしてみると、マウスの方を向いていることがわかります。
これで、マウスの方に向いて動くことができます。
8歩の部分の数字を大きくするとキャラは速く動きます。
さて、これらのブロックを囲んでいる「もし」の条件はなんでしょうか?

マウスのx座標が、キャラのx座標と±4以上離れているとき、や
マウスのy座標が、キャラのy座標と±4以上離れているとき、にだけ
キャラが進むように設定されていますね。
こうすることで、マウスが止まればキャラも止まり
マウスが動けば、キャラのほうも少しずつ(8ずつ)進む事になります。
この条件をこまかく設定すれば
マウスが遠くにいるときは早く動き、近くにいるときはゆっくり進むなど
キャラの動きをアレンジすることもできますね。

Sprite1が敵キャラです。
こちらが敵キャラのスクリプト

敵キャラの登場にはクローンを使っています。
難易度を上げるために、 15匹以上敵が出ると、敵の出現する間隔が短くなり
また20匹出たら短くなり・・・というようにだんだん敵の出現する時間を短くしています。
クローンされたあともシンプルで
色や登場する場所をランダムにし
そのあとはずっと「avoider(自キャラ)に向ける」→3歩動かすをくりかえします
敵キャラが自キャラにふれると、ゲームオーバーです。
キャラ同士の当たり判定ができるので、あまり意識したことがないかもしれませんね。
Scratch以外のゲーム制作では、お互いの座標同士をつかった
当たり判定をする場面もありますので
座標のあつかいにも慣れておくとよいかもしれません。
座標がニガテな子も多いのですが
スクリプト編集モードで、ステージにマウスを持っていくと

ステージ右下に、マウスの座標が表示されるので
プラス、マイナスが分からなくなったときには
ココを見るとすぐにわかりますね。
キャラの配置にも役立ちますので、ためしてみて下さいね。
先日は「人と科学の未来館サイピア」でプログラミングワークショップを行いました。
今後も定期的に開催する予定ですので、興味がある方は参加してみて下さいね。
さて今回は「マウスのポインターへ行く」のブロックを使わずに
マウスにゆっくりついてくるキャラを実装してみましょう。
参考にするゲームはこちら「A v o i d」

(リンク切れのときはこちら)
自キャラがマウスにふわーっと寄ってきます。
敵キャラもマウスに近づいてきますので、自キャラが敵キャラにあたらないように
逃げまくるゲームです。
「マウスのポインターへ行く」ブロックだと、マウスにピッタリくっついて離れないので
マウスにふわふわ~っとついてきてほしいときには使えませんよね。
では、どのようにプログラミングすればよいでしょうか?
自キャラがゆっくり寄ってくるには
まずは自キャラの準備をしましょう。
「avoider」と書かれているのが自キャラです
好きな絵を用意して下さい。

「Startを受け取ったとき」がゲーム開始です。
ずっと「マウスポインターへ向ける」と「8歩」動かすの繰り返しですね。
キャラクターが○なので向きがよくわかりませんが
ネコなどのキャラクターにしてみると、マウスの方を向いていることがわかります。
これで、マウスの方に向いて動くことができます。
8歩の部分の数字を大きくするとキャラは速く動きます。
さて、これらのブロックを囲んでいる「もし」の条件はなんでしょうか?

マウスのx座標が、キャラのx座標と±4以上離れているとき、や
マウスのy座標が、キャラのy座標と±4以上離れているとき、にだけ
キャラが進むように設定されていますね。
こうすることで、マウスが止まればキャラも止まり
マウスが動けば、キャラのほうも少しずつ(8ずつ)進む事になります。
この条件をこまかく設定すれば
マウスが遠くにいるときは早く動き、近くにいるときはゆっくり進むなど
キャラの動きをアレンジすることもできますね。
敵キャラのうごき
敵キャラの動きも見てみましょう。
Sprite1が敵キャラです。
こちらが敵キャラのスクリプト

敵キャラの登場にはクローンを使っています。
難易度を上げるために、 15匹以上敵が出ると、敵の出現する間隔が短くなり
また20匹出たら短くなり・・・というようにだんだん敵の出現する時間を短くしています。
クローンされたあともシンプルで
色や登場する場所をランダムにし
そのあとはずっと「avoider(自キャラ)に向ける」→3歩動かすをくりかえします
敵キャラが自キャラにふれると、ゲームオーバーです。
さいごに
Scratchでは、座標での当たり判定をしなくてもキャラ同士の当たり判定ができるので、あまり意識したことがないかもしれませんね。
Scratch以外のゲーム制作では、お互いの座標同士をつかった
当たり判定をする場面もありますので
座標のあつかいにも慣れておくとよいかもしれません。
座標がニガテな子も多いのですが
スクリプト編集モードで、ステージにマウスを持っていくと

ステージ右下に、マウスの座標が表示されるので
プラス、マイナスが分からなくなったときには
ココを見るとすぐにわかりますね。
キャラの配置にも役立ちますので、ためしてみて下さいね。
コメント