“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。最近はHSP3でのゲーム作り日記です

207.HSPでゲームを作ろう:標準スプライトのマップ表示を使ってアクションゲームを作る その5

ゲーム本編に関する部分を作っていく。まずは、プレイヤーキャラの当たり判定を調整する。

今回は、HSP3のサンプルプログラムで使用されていた画像を使っている。
プレイヤーキャラの珠音は64×128ドット。マップに使っているチップは、40x40ドット。

そのため、最初に定義したスプライトサイズだと、ブロックの間が1マス開いてても、某スーパーごにょごにょ兄弟のBダッシュ時と同じように、下に落ちない…
そして、ジャンプ時に見た目よりもかなり低い位置で、頭が引っかかってしまう。

※青い矩形が当たり判定範囲

これは都合が悪いので当たり判定を変えたい。
でも、es_size命令だと、当たり判定はパーセントでしか指定できない。

ここでHSP3.7で追加されたes_sizeex命令を使ってみる。

es_sizeex命令は、矩形ではあるけど、当たり判定のサイズと、判定開始のオフセットXY座標を指定できる。
見た目よりも小さな当たり判定で、かつ中心の1ピクセルだけ。のようなシューティングゲームの自機のような設定ができる。
今回はこのように定義した。

es_sizeex 64,128,,32,72,16,56

最初の64,128が、実際のスプライトのサイズ(64x128)、一つパラメータを省略して、次の32,72が、当たり判定のサイズ(32x72)さらに次の16,56が、当たり判定のXYオフセット量。
これを利用して、見た目よりも当たり判定を小さく設定した。これで、1マスの間も落下する。逆に1マスしか空いてないところを、下からジャンプして登れるようになった。
同じフロア内でジャンプしても、天井につっかえにくくできた。


※ピンクの矩形が当たり判定範囲