現在directxを用いた(DXライブラリは使わない)インベーダーゲームを作っているのですが、当たり判定の部分がなぜかうまくいきません。自機と敵の弾の当たり判定部分のコードを載せるのでどなたかご享受ください。
//============敵の攻撃========================
if(enemy[rand_atk].tamaflag == 0 && shot_save % 100 == 0 ){
__enemy[rand_atk].tamaflag = 1;
__enemy_atk[rand_atk].x = enemy[rand_atk].x+17;
__enemy_atk[rand_atk].y = enemy[rand_atk].y+17;
}
for(i = 0; i < 11; i++){
__if(enemy[i].tamaflag == 1){
____enemy_atk[i].y+=1;
____if(enemy_atk[i].y >= 480){
______enemy[i].tamaflag = 0;
______enemy_atk[i].y = -20;//画面外へ
____}
____if( ( move.x - 7 < enemy_atk[i].x && move.x + 32 > enemy_atk[i].x ) &&
________( move.y - 13 < enemy_atk[i].y && move.y + 24 > enemy_atk[i].y ) ){
______move.zanki--;
______enemy[i].tamaflag = 0;
______enemy_atk[i].y = -20;//画面外へ
____}
__}
}
move.x,move.yは自機のx,y座標で横32縦24
敵の弾の大きさは横7縦13
rand_atkはrand_atk = timeGetTime() % 11;でランダムに攻撃させようとしています。
No.1ベストアンサー
- 回答日時:
何がどううまくいってないか、まずは現状分析してみましょう(避けられない、とか、当らない、とか、遠くから当るとか...)
あなた自身で考えるにしても、私達が考えるにしても、まずはそこが出発点です。
・32x24の自機のどこかに7x13の弾が重なれば「当たり」
・座標は左上基準
でよろしいですか?
それだと、
>____if( ( move.x - 7 < enemy_atk[i].x && move.x + 32 > enemy_atk[i].x ) &&
>_______( move.y - 13 < enemy_atk[i].y && move.y + 24 > enemy_atk[i].y ) ){
この判定式自体はあっているように見えます。
ただ
・座標が各中心基準なら間違い
・move.x, move.y,enemy_atk[i].x ,enemy_atk[i].yの型はなんでしょう?unsignedだと move.x - 7 などが負にならず、画面端だと当らないことになります。
・当ったときの処理が、無条件で繰り返されています。同時に2つ当ると、残機が2つ減ります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 物理の斜方投射で目盛りに数値を入れたい 2 2023/05/27 06:32
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- その他(プログラミング・Web制作) Pythonでのかんたんな物理シミュレーションについての書籍 5 2023/06/02 07:37
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- その他(プログラミング・Web制作) 物理の斜方投射の目盛り線とx軸、y軸の追加について 3 2023/05/26 21:11
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- その他(プログラミング・Web制作) COBOL数値転記をCOPY句内での仕様 6 2022/06/15 18:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
3次元空間上の2つの座標から...
-
エクセルである点からの距離で...
-
ClientToScreen
-
球面状に円を描くプログラム
-
ワード上Shapeの位置情報を統一...
-
このアルゴリズムは分かりますか?
-
ASP.NET フォーム上でp...
-
スクリーン座標からワールド座...
-
VBで、開いているExcelシートの...
-
VB6のPrinter.ScaleWidth に対...
-
ガウシアンフィルタのCプログラム
-
交差する2線分の交点座標の求め方
-
正規表現の書き方(座標関係)
-
シューティングゲームの当たり判定
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
フォントの大きさ
-
コントロールの書式設定で、“コ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
3次元空間上の2つの座標から...
-
エクセルである点からの距離で...
-
始点、終点の二つの座標と半径...
-
エクセルで回転する座標の出し方
-
閉図形の座標の配列が右回りか...
-
ワード上Shapeの位置情報を統一...
-
以下のプログラムは重心を求め...
-
C言語 配列で座標
-
ダイアログ内コントロールの位...
-
ガウシアンフィルタのCプログラム
-
空間上の二点を結ぶ直線上に任...
-
エクセルシート上のマウスポイ...
-
シーケンサー(PLC?)で制...
-
VB6のPrinter.ScaleWidth に対...
-
多角形の内部かどうか判定する方法
-
直線上にある点の座標の求め方
-
y=x^2の座標をプロットするプロ...
-
ピクチャボックスの座標取得
おすすめ情報