見出し画像

PICO-8で遊ぼう(衝突判定編

今回からPICO-8の本領域?である2Dのゲームを作っていこうと思います。

本日の教科書

何はともあれプレイヤーキャラクターを作る

以前作ったブルラビくん再登場
ブルラビくんをアニメーションさせるためにINPUT()でおこなっている
変数S(表示するスプライトNo)の切り替えが若干複雑?

アイテム取るゲームを作る

ウサギ(ブルラビくん)に取らせるアイテムと言えばニンジン
ニンジン(アイテム)用の座標とスプライトNoの変数を追加
_draw()にニンジン表示用のSPR()を追加
実行画面。
ニンジンにブルラビくんが重なっても当たり判定をつけていないので何の反応もなく素通り。

当たり(衝突)判定

当たり判定はニンジンとブルラビくんそれぞれの座標から2点間の距離を求め、十分近ければ(数値が小さい)当たりということにします。

2点間の距離Dを求めるには三平方の定理を使います。

$$
D=\sqrt{(IX-PX)^2+(IY-PY)^2}
$$

距離を求めるdistance()と衝突判定のcollision()
ここでは
距離が8以下の場合、当たり(true)としています
距離Dと当たり判定の変化

ゲームっぽくしてみる

ブルラビくんがニンジンを取るたびに別の場所にランダムにニンジンが出現するゲームっぽいものを作ってみます。

sfx(0)も鳴っています。

まずはここまで!


この記事が気に入ったらサポートをしてみませんか?