在XNA 4.0中清空/卸载矩形

本文关键字:卸载 清空 XNA | 更新日期: 2023-09-27 18:29:51

我正在XNA中创建一个太空入侵者的克隆作为练习。在过去的5天里,我遇到了各种各样的障碍,尤其是我处理过的碰撞。我终于让它工作了,但却遇到了另一个问题。

玩家的子弹碰撞并摧毁了入侵者,然而,我为碰撞创建的矩形仍然存在。(我认为)

整个解决方案可以在这里找到,所以你只需按F5键和空格键就可以重新创建问题,杀死绿色入侵者,我相信留下的空白就是矩形。:https://www.dropbox.com/sh/pzy7fx3tuprzza2/GIjhZ6V5ll

我的问题是:当子弹击中入侵者时,我该如何移除矩形,或者阻止它们相交。

在XNA 4.0中清空/卸载矩形

问题似乎是你没有意识到你的入侵者已经在Game1.cs的524线上被炸毁了。你有一个FOR语句,它会旋转你的入侵者,找出入侵者应该在哪里,然后检查命中框是否相交。你不需要检查命中框相交的入侵者是否已经死亡。

在Invaders对象(Invader1、Invader2等)中,您需要跟踪变量以确定Invader是否处于活动状态。如果你喜欢的话,你似乎可以使用变量invalidrVis,因为这似乎决定了你是否应该显示入侵者。

所以524行应该改为类似的行

if (Type1Invaders[Count].invaderVis && rectMissile.Intersects(rectInvader))
{
    //Do logic for hit
}

也可以在lne 539上更改你的不明飞行物命中检查程序。