
現在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)
-
スクリーン上の画像をマウスド...
-
運動のプログラムをおしえてく...
-
LinuxでCursesライブラリを使っ...
-
精度の荒いOCR文書からのデータ...
-
コントロールのドラック&ドロップ
-
ガウシアンフィルタのCプログラム
-
EXCEL VBA でウインドウの...
-
内積を用いた移動する線分と円...
-
3D→2Dの座標変換で、スクリーン...
-
VB6→VS2005アップグレード後
-
MATLABの画像処理、2本の直線の...
-
複数コントロール(ラベル)を...
-
空間上の四面体の体積
-
回転する矩形同士の当たり判定...
-
アクセスのセルの数え方。
-
マインクラフト(pc版)で座標...
-
GLで座標を変えて回転させたい
-
碁盤目の経路数
-
ポインターの位置を検知する方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
ダイアログ内コントロールの位...
-
ワード上Shapeの位置情報を統一...
-
エクセルで回転する座標の出し方
-
3次元空間上の2つの座標から...
-
シーケンサー(PLC?)で制...
-
多角形の内部かどうか判定する方法
-
エクセルである点からの距離で...
-
始点、終点の二つの座標と半径...
-
直線上にある点の座標の求め方
-
以下のプログラムは重心を求め...
-
交差する2線分の交点座標の求め方
-
PPTのVBA スライド右下端の座...
-
選択範囲の座標値の抽出
-
閉図形の座標の配列が右回りか...
-
Excel VBA で自在に図形を変化...
-
ピクチャボックスの座標取得
-
アナログ時計の短針(時間用針)...
-
PanelとCanvasの違いについて
おすすめ情報