我在检查我的角色是否在我的 XNA 游戏中被击中时遇到问题。我有一个包含命中框的字符类,但我怎么可能让它检查其他字符被击中?
有没有办法这样做:
if(this.hitbox.Y = [any other character using this class].attackbox.Y)
谢谢你的帮助
据我了解,“命中”是当 hitbox1 与 hitbox2 有非空交集时。我建议如下(对于 2d hitboxes)
在 XNA 框架中有一个方法:Rectangle.Intersects()
,所以使用它。
手动的方法看起来有点像下面描述的:假设,hitbox 是一个坐标为 [(x1,y1),(x2,y2)] 的矩形,那么我们得到了几个类似于下面的替代情况
if(h1.x2 >= h2.x1 && h1.y2 >= h2.y1)
{
\\this is one of cases when we got hit
}
这是我会做的方式。