当一个物体与另一个物体发生碰撞时,我试图阻止它。我的意思是如果用户试图将它滑到另一个我希望我的对象滑动而不是像现在那样滑过。我正在使用 Xna 和矩形碰撞功能。
public void Update(GameTime gametime)
{
Currentposition = Station.Position;
Station.Update();
coli = IsHit(ListObs[16].ShapeO, Station.Shape);
}
public void Draw(SpriteBatch spritebatch)
{
if (coli == true)
{
Station.Position = Currentposition;
Station.Draw(spritebatch);
}
else
{
Station.Draw(spritebatch);
}
}
它暂时不起作用,我可以尝试使用 Farseer 或 bOx2DX,但我认为它对我来说太深了(我不需要重力)。
public bool IsHit(Rectangle r1, Rectangle r2)
{
if (((r1.X + r1.Width >= r2.X) && (r1.X <= r2.X + r2.Width)) && ((r1.Y + r1.Height >= r2.Y) && (r1.Y <= r2.Y + r2.Height)))
return true;
else
return false;
}