【问题标题】:C# How to detect collisions with other Texture2D'sC#如何检测与其他Texture2D的碰撞
【发布时间】:2013-10-06 06:18:27
【问题描述】:
if(drawRectangle.Right > drawRectangle0.Left)
{
   drawRectangle0.Y = 100;    
}

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

另一方面,我如何让我的Texture2D 出现而周围没有白色矩形?我如何使它不可见?

提前致谢。

【问题讨论】:

    标签: c# xna collision-detection


    【解决方案1】:

    您可以测试Rectangles 与Rectangle.Intersects(drawRectangle, drawRectangle0); 之间的重叠

    我认为您将需要显示更多代码,因为很难从该 sn-p 中看出问题。

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

    【讨论】:

      【解决方案2】:

      如果您的精灵周围的“白色矩形”是您原始纹理的一部分,您可能需要告诉 XNA 不要绘制该颜色并使其透明。您必须在 Content Processor 属性中将 Color Key Color 从 Magenta (255, 0, 255) 更改为 White (255, 255, 255),请参阅 here .

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

      【讨论】:

      • 如果还有什么不明白的,尽管问:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 2022-11-19
      相关资源
      最近更新 更多