【发布时间】:2010-04-21 07:24:14
【问题描述】:
我仍然是 XNA 的新手,所以请原谅本文中的任何愚蠢问题和陈述(附加问题是我正在使用带有 .Net 4.0 的 Visual Studio 2010,这也意味着网络上存在的示例很少 -好吧,没有一个我能轻易找到):
我在一个“游戏”中有两个 2D 对象,我用它们来了解有关 XNA 的更多信息。我需要弄清楚这两个对象何时相交。
我注意到 Texture2D 对象有一个名为“Bounds”的属性,该属性又具有一个名为“Intersects”的方法,该方法接受一个 Rectangle(另一个 Texture2D.Bounds)作为参数。
但是,当您运行代码时,对象总是相交,即使它们位于屏幕的不同侧。当我进入代码时,我注意到对于 Texture2D Bounds,当您将鼠标悬停在 Bounds 和 X 上时,我会返回 4 个参数,并且 Y 坐标对于两个对象总是读取“X = 0,Y = 0”(因此它们总是相交)。
让我感到困惑的是,Bounds 属性位于纹理上,而不是位于对象的位置(或 Vector2)上。我最终创建了一个小辅助方法,它接收对象和位置,然后计算它们是否相交,但我确信一定有更好的方法。
任何建议,指针将不胜感激。
工程师
【问题讨论】:
标签: visual-studio-2010 .net-4.0 xna intersection texture2d