В настоящее время я работаю над 2D-игровым движком на C# с использованием GDI + и добрался до точки, где хочу добавить простое обнаружение столкновения.Физический движок (обнаружение столкновений C#, GDI +)
До сих пор, я могу проверить, является ли мой игрок пересекается с другим объектом игры, используя код ниже:
public static bool IntersectGameObject(GameObject a, GameObject b)
{
Rectangle rect1 = new Rectangle((int)a.Position.X, (int)a.Position.Y, a.Sprite.Bitmap.Width, a.Sprite.Bitmap.Height);
Rectangle rect2 = new Rectangle((int)b.Position.X, (int)b.Position.Y, b.Sprite.Bitmap.Width, b.Sprite.Bitmap.Height);
return rect1.IntersectsWith(rect2);
}
Это фантастика, и я рад, что я получил это далеко, однако я хотите узнать, пересекался ли мой игрок с верхней, нижней, левой или правой стороной игрового объекта, чтобы я мог остановить движение моего игрока в этом направлении, если ... он сталкивается со стеной. Как мне это сделать? Может кто-нибудь, пожалуйста, помогите мне :)
Кстати, игровые объекты имеют Bitmaps, которые все 32 * 32 пикселей, поэтому мне не нужно за столкновения пикселей
Спасибо заранее :)
Хотя я назвал это лучшим ответом, я решил не идти по этому маршруту. Однако ваш ответ чрезвычайно информативен. –