C#如何检测与其他Texture2D的碰撞

时间:2013-10-05 03:09:59

标签: c# xna collision-detection

if(drawRectangle.Right > drawRectangle0.Left)
{
   drawRectangle0.Y = 100;    
}

这只是一个测试,看看我的代码是否会检测到它,但确实如此,但不是我想要的方式。看,当我甚至没有靠近它时,无论如何它会移动,我想要它,当它检测到与drawRectangle(玩家Rectangle)的碰撞移动时,玩家可以去收集它试。

另一方面,如何让我的Texture2D出现时没有白色矩形?我如何让它隐形?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以使用Rectangle

测试Rectangle.Intersects(drawRectangle, drawRectangle0);之间的重叠

我认为您需要显示更多代码,因为很难从该代码段中看到问题。

纹理周围的白色矩形是什么意思?在Windows中查看时,它们是否有白色矩形(不透明?)?

答案 1 :(得分:0)

如果您的精灵周围的“白色矩形”是原始纹理的一部分,您可能需要告诉XNA不要绘制该颜色并使其透明。您必须在内容处理器属性中将颜色键颜色从洋红色(255,0,255)更改为白色(255,255,255),请参阅{{3 }}

通常最好在精灵中使用Magenta作为透明色,因为它是XNA中的默认颜色。或者更好的是,使用像Photoshop或Paint.net这样的程序,并使用alpha通道使其透明。