我对XNA还很陌生,如果此篇文章中有任何愚蠢的问题和陈述,请见谅(此外我使用的是带有.Net 4.0的Visual Studio 2010,这意味着网上几乎没有例子——至少没有我能轻易找到的):
在我正在构建用于学习更多关于XNA的“游戏”中,我有两个2D对象。我需要弄清楚这两个对象何时相交。
我注意到Texture2D对象有一个名为"Bounds"的属性,其中包含一个名为"Intersects"的方法,该方法以一个矩形(另一个Texture2D.Bounds)作为参数。
然而,当您运行代码时,这些对象总是相交,即使它们位于屏幕的不同侧面。当我进入代码时,我注意到Texture2D Bounds返回了4个参数,当您鼠标悬停在Bounds上时,X和Y坐标始终读取“X=0,Y=0”,对于两个对象都是如此(因此它们总是相交)。
令我困惑的是Bounds属性出现在纹理上而不是在对象的位置(或Vector2)上。最终,我创建了一个小辅助方法,该方法接收对象及其位置,并计算它们是否相交,但我相信肯定有更好的方法。
任何建议和指针都将不胜感激。
Gineer