【发布时间】:2017-01-10 20:27:27
【问题描述】:
我目前正在使用 GDI+ 在 C# 中开发 2D 游戏引擎,并且已经到了想要添加简单碰撞检测的地步。
到目前为止,我可以使用以下代码检查我的玩家是否与另一个游戏对象相交:
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);
}
太棒了,我很高兴能走到这一步,但是我想知道我的玩家是否与游戏对象的顶部、底部、左侧或右侧相交,以便我可以停下来如果说我的玩家不会朝那个方向移动……他撞到了墙。我该怎么做呢?有人可以帮我吗:)
顺便说一句,游戏对象都有位图,都是 32 * 32 像素,所以我不需要每个像素的碰撞
提前谢谢你:)
【问题讨论】:
标签: c# gdi+ physics game-physics