Back
A004 弾幕シューティング当たり判定試作

今度はウィズメルクリウスを作るに当たって試作したデモ。
あくまで当たり判定のテストなので延々と避けるだけしか出来ません。ストレス倍増マシン。テスト弾幕の種類は趣味。
若干弾の軌道がカクカクしてる気がするのは負荷を下げるためにSmoothingを切っているからで、60fps(ウィズメルクリウスのSTGパートはこっち)だとそう気にならないと思いますがこれで避けるのは無理ある。

-TIPS-
TDと同じ方法で当たり判定を取ると高速弾が自機をすりぬけてしまうのでどうすんだよ、という問題があり、
代わりに思い付いたのが、シェイプの形と座標で接触判定が取れるhitTestPointメソッドを利用する方法。それぞれの弾にいっせいに一つのスプライトに線を引かせ、自機の位置で当たり判定を取る。我ながら変な事考え付くと思ったんですがこれが思った以上に上手く動作しましたバンザイ。自作のプログラムの中でも割とオリジナルっぽいかも?


//当たり判定レイヤーに弾の大きさと同じさ太さの線を引く
//移動量(vx,vy)の計算はTDと同じ
hitZone.graphics.lineStyle(_size, 0xFF0000);
hitZone.graphics.moveTo(x, y);
x += _vx;
y += _vy;
hitZone.graphics.lineTo(x, y);
				
//当たり判定レイヤーと自機の接触判定を“シェイプグラフィック通りに”取る
hitZone.hitTestPoint(_player.x, _player.y, true)

弾速の係数を上げれば1Fで画面端まで届く凶悪なレーザーなんかも簡単に実現出来ます。しました。ごめん。
そのままだと自機の当たり判定は1pxの極小サイズですが、自機の当たり判定を大きくしたい分だけシェイプ線の太さを増せば大体同じ事です。