【发布时间】:2011-12-21 02:35:59
【问题描述】:
我目前无法使用边界框使精灵看起来是实心的。使用下面的代码,碰撞工作得很好。
位置是地图上主要角色的位置。 character2 是主角将与之碰撞的 18 x 28 精灵的名称。
当主角与 character2 精灵碰撞时,我尝试相应地调整位置(例如:Position.X -=1;),但这只是将我的主要精灵向后滑动,直到它不相交。
我觉得这很简单,但对于我的生活,我就是想不通。
总结一下我的问题:如何让 character2 精灵在碰撞时看起来是实心的?
此外,即使我的主精灵在碰撞时停止(通过将速度降低到 0)它也会卡在那里,if 语句进入无限循环。
float x1 = Position.X;
float y1 = Position.Y;
float x2 = x1 + character2.Width;
float y2 = y1 + character2.Height;
BoundingBox b1 = new BoundingBox(new Vector3(x1, y1, 0),
new Vector3(x2, y2, 0));
BoundingBox b2 = new BoundingBox(new Vector3(Position2.X, Position2.Y, 0),
new Vector3(x2, y2, 0));
if (Collision(b1, b2))
{
// ????
}
【问题讨论】:
标签: c# xna collision-detection