忍者ブログ
まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

当たり判定を実装しようと思ったのですが、以前書いた方法だと正方形の場合は良いのですが
長方形の場合は、上手く判定してくれませんでした。
ちなみにこんな感じの判定方法です↓
ddx=(ex+16)-(px+16)
ddy=(ey+16)-(py+16)
if (abs(ddx)<10)&(abs(ddy)<10)
中心座標を求めて絶対値を使って判定しています。

で、どうしようかと思っていたのですが以前購入したシューティングゲームプログラミング
良い方法が書いてありました。判り易いように図に纏めてみた↓
s-atari.jpg*クリックで拡大します。
4点の座標を計算して判定しているので、判定の対象が長方形になっても対応出来ます。
4点の座標の計算方法はGetGraphSizeを使って画像の大きさを調べて、左上の座標に
足して計算すれば、残りの3点も計算できますね。

上記を踏まえて、簡単な当たり判定プログラムを作ってみました↓
https://blog.cnobi.jp/v1/blog/user/63629cf35d5259ece1529ed13f0745b1/1239286528
このプログラムを実行させるとこんな感じ↓
s-WS000335.jpg
↑↓←→で自機移動
Z⇔Aで敵X軸拡大縮小
X⇔Sで敵Y軸拡大縮小
自機と敵が当たると”Hit!”と表示します。
この判定方法だと、長方形でも判定出来るので良い感じです。
ただ、回転する長方形には使用出来ないので、何か良い方法はないかと思って調べてみると
色々と解説されているサイトは見つかったのですが、書いている事が難しくて
理解出来ませんでした(汗)
PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
Twitter
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]