猫がボールに触れたら点数が入る

猫がボールに触れたら点数が入るというシンプルなコードです。

まず、猫の動きをスプライト1で作ってみます。

まずは、猫が上、下、右、左に動く関数を下のように作ります。

ずっとの中に何のキーが押されたらどう動くかを配置します。

これで猫を矢印キーを押して動かせるようになりました。

次にスプライト2にボールの絵を挿入して作ります。

まず点数という変数を作ります。

そして、ボールをいろんな角度から発進してボールが端についたら跳ね返るようにしてランダムに動くようにします。

ボールが猫に当たったら、点数が入るように下のように作ってみました。

ところが、上のように作って動かすと、猫に触れている間、ずっと点数が入るという現象が置きました。

なので、1度猫にふれると、点数が1点入って、少しの間点数が入らない仕組みが必要だと考えました。

これを、無点数時間という関数にしてみます。

まずstatusという変数を作ります。

無点数時間(点数が入らない時間)とそうでない時間(点数が入る時間)の区別をつけるための変数です。

無点数時間のときは、statusを1にして、そうでないときはstatusを0にします。

時間は、いろいろと試して0.3秒がぐらいがよさそうだったのでこの数字で設定していますが、ここは各自で試してから時間を変えてください。

後は、ボールの動きに無点数時間を設置してみます。

猫に触れたら無点数時間でstatusを1に変え、0.3秒待つ。その後、statusを0に変えてまたボールがランダムに動くようにしています。

最終的に下のようなコードにしてみました。

ボールの動きを変えただけなのですが、猫のあたり判定が弱くなりました。

この辺はまた他を試してわかったことを追記していきたいと思います。

猫がボールに触れたら点数が入る動画