スクラッチを使ったプログラミングで、ランニングゲームを作っています。
マップの当たり判定のところでつまづいたところがあったので記録しておきます。
「〇色が〇色に触れた」を使ってみる
ランニングゲームなので、コースのマップをエンドレスでスクロールさせます。
「〇に触れた」の判定を使った場合、判定用のスプライトと表示させるスプライトを別々に用意して同じ座標で移動させるのが面倒だなと思って、「〇色が〇色に触れた」を使えばいいかと思って判定に使ってみました。
判定につかう特定の色を地面の絵に埋め込む作戦で行こうと思いました。
下から登ってくることもあるのでなるべく細くしてあります。
(あんまり細いとすり抜けてしまう)
コスチュームで設定した色データは↓のようになっています。
青(67,100,100)
紫(72,60,100)
「〇色が〇色に触れた」ブロックをだして、で画面から色を抽出してみます。
青(66,100,100)
色が1ずれてるー!
つづいて紫も抽出します。
紫(72,60,100)
合ってる、、、??
抽出したほうの色を判定に使うことにしました。
ちゃんと着地できています。^^
コスチュームの方の青(67,100,100)で判定すると、、
抜けます。;;
よくわからないのですが、抽出のほうで判定うまくいっているしいいかなと思って進めました。
スクロールのループとアイテム出現ができたのでプロジェクトを公開してスマホで実行してみると、、、
みごとにすり抜けました、、、;;
青の判定を(67,100,100)にするとスマホではOK
でもPCだとNG
なので、判定を複数にしてみました。
これでPCでもスマホでもすり抜けは無くなりました。
けど、、、なんかモヤモヤっとします。
しばらく他の部分の作成を進めてから、
やっぱり「〇に触れた」の判定を使うことにしました。
「〇に触れた」を使って作成する
地面スプライトはスクロールするので複数クローンされていますが、スクラッチではクローンされた全部に対して判定をしてくれます。
なので判定をこのように変えました。
地面の判定用なのでスプライトの名前は「地面判定」にしてあります。
これで万事解決なのですが、表示させる地面スプライトの座標をスクロールに合うようにプログラミングする必要があります。
見た目と判定位置がずれないかな思ったのですが、何とか調整できました。
そして、地面の絵を好きに描けるようになったので
地面をパンダにしてみました。
妻は「目がチカチカする」といっていました。^^;
処理落ちもしてないようだし、これで作っていこうと思います。^^
他の作品記事もよければ読んでみてください。
「水色のパンダ団」が作ったスクラッチ作品の記事まとめ
スクラッチ作品の作り方や解説をした記事を整理しました。小学生などの初心者やゲームを作りたい中級、上級者などプログラミングのスキル別に作品をまとめています。
0 件のコメント:
コメントを投稿