【发布时间】:2012-06-30 04:39:10
【问题描述】:
全部。
我们正在尝试让一些相交碰撞工作,但问题是矩形没有覆盖纹理上的校正。
纹理是 20x340 像素的图像。在纹理类 (Net) 中,我们有一个 Rectangle 用作碰撞框(SetCollisionBox 方法)。我们在Game 类中定义了以下内容(在LoadContent() 方法下)。
g_Net = new Net("Net1");
g_scene.Place(g_Net, new Vector3(8, 100, 1));
g_Net.SetCollisionBox(new Rectangle((int)g_Net.Position.X, (int)g_Net.Position.Y, 20, 340));
我们遇到的问题是矩形被绘制在纹理(网络)上方并且调整高度确实使它更对齐,但是只有上面可以与球对象碰撞g_Ball.ballRectIntersect(g_Net.netRect)。 netRect 是 Net 类中的公共成员 Rectangle,ballRect 是 Ball 类的等价物。
所以我的问题是如何让Rectangle 叠加层正确出现在纹理上,以便碰撞与整个网络纹理相对应?有没有更好的方法来放置这个叠加层?
非常感谢您。
干杯。
- 山姆。
【问题讨论】:
-
你有图片来展示它的样子吗?
-
看看 SetCollisionBox 做了什么会有所帮助。
-
public void SetCollisionBox(Rectangle rect) { netRect = rect; } -
其中
netRect是public Rectangle netRect也在Net类中。 -
绘制一个原始矩形并在其上放置纹理会更好吗?谢谢。