Xna 精灵到线碰撞

Xna 精灵到线碰撞,xna,collision-detection,Xna,Collision Detection,如果我有一个精灵,我将如何检查两点之间的碰撞?例如,在我正在制作的一个游戏中,我想画出我的精灵与之碰撞的多条线。我认为如果我有很多平台,这比其他碰撞系统更灵活。一些简单的逻辑可以帮助减少浪费的计算,即如果精灵的顶部低于两个点,就不会发生碰撞。一种简单的边界框碰撞检查 一旦你做到了这一点,我建议你为你的线条得到一个“公式”,然后检查你的雪碧的哪个角位于该线条之上或之下。如果它们不都位于同一侧,则发生碰撞 例如,如果你的直线是y=x/2+2,从x=-20开始,到x=20结束,并且你的方形精灵在(3,

如果我有一个精灵,我将如何检查两点之间的碰撞?例如,在我正在制作的一个游戏中,我想画出我的精灵与之碰撞的多条线。我认为如果我有很多平台,这比其他碰撞系统更灵活。

一些简单的逻辑可以帮助减少浪费的计算,即如果精灵的顶部低于两个点,就不会发生碰撞。一种简单的边界框碰撞检查

一旦你做到了这一点,我建议你为你的线条得到一个“公式”,然后检查你的雪碧的哪个角位于该线条之上或之下。如果它们不都位于同一侧,则发生碰撞


例如,如果你的直线是
y=x/2+2
,从x=-20开始,到x=20结束,并且你的方形精灵在(3,-1)处有3宽/高,那么你的尖顶有四个点(3,-1)(3,2)(6,2)(6,-1)。在这两个x位置计算出直线的y值,在x=3时y=3.5,在x=6时y=5。所有这些y值都大于立方体的y值,因此立方体在直线下方。

如果直线向上,怎么办?我认为我的方法仍然有效。它基本上将线条视为一个长方体,并检查精灵的任何角落是否落在线条生成的长方体中。这是一个非常粗糙的方法,但对于一件简单的事情来说,它会起作用。