【スクラッチ】ランニングゲームで当たり判定の方法を考える

2021年2月4日木曜日

Scratch スクラッチ プログラミング ランニングゲーム

t f B! P L

 




スクラッチを使ったプログラミングで、ランニングゲームを作っています。

マップの当たり判定のところでつまづいたところがあったので記録しておきます。




「〇色が〇色に触れた」を使ってみる



ランニングゲームなので、コースのマップをエンドレスでスクロールさせます。

〇に触れた」の判定を使った場合、判定用のスプライトと表示させるスプライトを別々に用意して同じ座標で移動させるのが面倒だなと思って、「〇色が〇色に触れた」を使えばいいかと思って判定に使ってみました。


判定につかう特定の色を地面の絵に埋め込む作戦で行こうと思いました。





ランナーの足元に合わせて判定用のコスチュームに青色を設定。






地面の判定に使う色を「」に設定。

下から登ってくることもあるのでなるべく細くしてあります。

(あんまり細いとすり抜けてしまう)




コスチュームで設定した色データは↓のようになっています。



青(67,100,100)





紫(72,60,100)



〇色が〇色に触れた」ブロックをだして、で画面から色を抽出してみます。





青を抽出すると、、





青(66,100,100)


色が1ずれてるー!



つづいて紫も抽出します。





紫(72,60,100)


合ってる、、、??



抽出したほうの色を判定に使うことにしました。




 

ちゃんと着地できています。^^



コスチュームの方の青(67,100,100)で判定すると、、




抜けます。;;



よくわからないのですが、抽出のほうで判定うまくいっているしいいかなと思って進めました。



スクロールのループアイテム出現ができたのでプロジェクトを公開してスマホで実行してみると、、、





みごとにすり抜けました、、、;;


青の判定を(67,100,100)にするとスマホではOK

でもPCだとNG


なので、判定を複数にしてみました。




これでPCでもスマホでもすり抜けは無くなりました。

けど、、、なんかモヤモヤっとします。



しばらく他の部分の作成を進めてから、

やっぱり「〇に触れた」の判定を使うことにしました。





「〇に触れた」を使って作成する


地面スプライトはスクロールするので複数クローンされていますが、スクラッチではクローンされた全部に対して判定をしてくれます。


なので判定をこのように変えました。



地面の判定用なのでスプライトの名前は「地面判定」にしてあります。


これで万事解決なのですが、表示させる地面スプライトの座標をスクロールに合うようにプログラミングする必要があります。


見た目と判定位置がずれないかな思ったのですが、何とか調整できました。



そして、地面の絵を好きに描けるようになったので

地面をパンダにしてみました。






妻は「目がチカチカする」といっていました。^^;


処理落ちもしてないようだし、これで作っていこうと思います。^^

他の作品記事もよければ読んでみてください。


このブログを検索

ブログをよくする

自己紹介

自分の写真
はじめまして。あまるちゃんです。 子供のプログラミング学習に協力できるように教え方を勉強中です。 このブログでは自分が学んだことを投稿していきます。

連絡フォーム

名前

メール *

メッセージ *

ブログ アーカイブ

QooQ