• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:敵との当たり判定)

敵との当たり判定方法

このQ&Aのポイント
  • ゲーム製作中の質問者は、現在VisualC++2008を使ってゲームを製作していますが、自分と敵との当たり判定の方法がわかりません。解決方法について教えてください。
  • ゲーム製作中の質問者は、自分と敵との当たり判定がわかりません。どのようにすればいいか教えてもらえないでしょうか。
  • ゲーム製作中の質問者は、自分と敵との当たり判定の方法を教えてほしいと思っています。どのようにすればいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

敵に触れても反応しないのは、「==」をつかっているせいで、座標の数値が完全一致しない限り判定が下りなくなっているからです。 関係のない場所で判定がでてしまうのは、X座標とY座標を個別に判断したり、関係のないX座標とY座標を比べたことによります。 プレイヤーと敵の当たり判定を、一辺がcollの正方形とするなら、判定部は以下のようにすればうまくいくと思います。 if (PlX-coll/2 < teki[0].x+coll/2 && //自機の当たり判定の左端が敵の右端より左にあり、 PlX+coll/2 > teki[0].x-coll/2 && //自機の右端が敵の左端より右にあり、 PlY-coll/2 < teki[0].y+coll/2 && //自機の上端が敵の下端より上にあり、 PlY+coll/2 > teki[0].y-coll/2) //自機の下端が敵の上端より下にあるとき。 本格的に作っていくときには敵の大きさや形も様々でしょうから、当たり判定の大きさはキャラクターごとに高さと幅を別々に設定するとよいでしょう。 当たり判定はシューティングゲームの基本となる部分です、ここで例に挙げたのは矩形を用いた方法ですが、他にも二点間の距離を用いた方法など長所短所のあるいくつかの方法が存在します。それらを試してみるのもおもしろいかもしれません。

参考URL:
http://ja.wikipedia.org/wiki/%E5%BD%93%E3%81%9F%E3%82%8A%E5%88%A4%E5%AE%9A
daikon999
質問者

お礼

成功しました! 詳しく教えていただきありがとうございますm(_ _;m)

関連するQ&A