🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

1066閲覧

当たり判定の前に行うeffect処理について

isimasa

総合スコア308

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/01/08 14:30

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
c++でインベーダーゲームのようなものを作っています。
当たり判定機能を実装中にどう書いてよいのか分からなくなってしまいました。

発生している問題・エラーメッセージ

エラーメッセージなし

該当のソースコード

c++

1// 衝突判定 2 if (CollisionCircle(pEnemy->vPos.x, 3 pEnemy->vPos.y, ENEMY_RADIUS, fX, fY, fR)) { 4 // 座標を返す 5 if (pfX) { 6 *pfX = pEnemy->vPos.x; 7 } 8 if (pfY) { 9 *pfY = pEnemy->vPos.y; 10 } 11 // 消滅 (仮) 12 if (fDamage > 0.0f) {//敵が1キャラ分まで近づいたら入れたい処理 13 pEnemy->nStat = 0; 14 StartEffect(&pEnemy->vPos, EEFECT_DEAD000); 15 AddScore(100); 16 } 17 return i; // 0以上なら当たり 18 }

試したこと

c++当たり判定当たっていなくてもできるとかを調べてみましたが当たった時の判定しかわかりませんでした。ノートに書きだしてみましたが、もし敵のポリゴンの下端とプレイヤーのポリゴンの上端が例えば38px以下になったら行う処理という感じです。

補足情報(FW/ツールのバージョンなど)

Visualc++です。Windows10で動作確認済
ifで分岐させる条件式が知りたい
敵が1キャラ分まで近づいたら消滅ではなく画面の色を変えるなどしたい
必要な単語があれば返信ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

「当たり判定」で二つのオブジェクトの基準点からの距離を求めてそれがそれぞれのオブジェクトが接する距離以下かどうかを判別している。

であれば、「近接判定」であってもやることは何も変わらないのでは。二つのオブジェクトの距離を求めて、それが規定の距離以下かどうかを判別すればよいのでは?
解決策:敵とプレイヤーとの間に境界となるobjを置き敵が境界内に侵入したらというifを追加すると良いと思います。投稿して話を聞いてもらって整理がつきました。

投稿2021/01/09 09:18

isimasa

総合スコア308

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2021/01/09 11:13

いや、本当に「当たり」である必要はなくて、「距離」だけ考えれば、という話なんだけれど...
guest

0

ベストアンサー

「当たり判定」って(いくつかの方法はあると思うけど、とりあえず質問のコードでやっていそうなのは)つまり二つのオブジェクトの基準点からの距離を求めてそれがそれぞれのオブジェクトが接する距離以下かどうかを判別している、ということでしょう?

であれば、「近接判定」であってもやることは何も変わらないのでは。二つのオブジェクトの距離を求めて、それが規定の距離以下かどうかを判別すればよいのでは?
(単純に距離じゃなくて単に「高度差」なのかも知れませんが、それは大勢に影響ないですよね)

投稿2021/01/09 00:43

thkana

総合スコア7703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問