【发布时间】:2010-07-07 14:01:49
【问题描述】:
首先,我的问题并不是特定于 C# 或 XNA,但我的代码示例将使用这些。
我目前正在尝试制作 Pong 克隆,但遇到了碰撞检测问题。
每个对象基本上都有一个特定的 Velocity(它是 Vector2)、Position(Vector2,也是)和 Speed(只是一个浮点数)。在对象的每次 Update() 调用中,位置都会以这种方式更改:
Velocity.Normalize();
Position += Velocity * Speed;
起初,我只通过来自对象矩形的简单 Intersects() 调用检查当前是否存在两个对象之间的碰撞。我很快意识到,我不仅可以检查对象是否当前与另一个对象发生碰撞,还可以检查对象是否碰撞与途中的对象。当速度太高时,只检查两个物体是否正在碰撞,让球通过桨。
我尝试了不同的方法来解决问题,但似乎都没有奏效。我只需要一种方法来检查两个物体是否在途中发生碰撞,如果发生碰撞,是否来自水平、垂直或两者(以相应地改变球的速度)。
我不一定要马上得到解决方案,也许只是如何实现这个的基本想法,我会自己编写代码。
感谢您的宝贵时间。
【问题讨论】:
标签: c# xna collision-detection