以下のコードでは矩形の当たり判定ですが高速で移動する物体では当たり先の物体を通り抜けてしまうので判定出来ません。その際はどうすれば当たり判定を作るのでしょうか?
提示コードは矩形の当たり判定ですコードです。
cpp
1 2// 矩形同士の当たり判定 3bool Rect_and_Rect_2D(Box_Collision_2D& a, Box_Collision_2D& b) 4{ 5 6 if (a.getOnCollision() == true && b.getOnCollision() == true) 7 { 8 // 矩形の衝突判定 9 if (((a.getPosition().x + a.getSize().x > b.getPosition().x) && (a.getPosition().x < b.getPosition().x + b.getSize().x)) 10 && ((a.getPosition().y + a.getSize().y > b.getPosition().y) && (a.getPosition().y < b.getPosition().y + b.getSize().y))) 11 { 12 return true; 13 } 14 else 15 { 16 return false; 17 } 18 } 19 else 20 { 21 return false; 22 } 23} 24
移動を分割して、その判定を複数回呼ぶ方法があります。