C# XNA 4.0中的Empy/卸载矩形

C# XNA 4.0中的Empy/卸载矩形,c#,xna,C#,Xna,作为练习,我在新华社制作了一个太空入侵者的克隆。在过去的5天里,我遇到了各种各样的障碍,尤其是我曾经处理过的碰撞。我终于让它工作了,只是为了解决另一个问题 来自玩家的子弹碰撞并摧毁入侵者,但是,我为碰撞创建的矩形仍然保留。(我想) 整个解决方案可以位于这里,这样你就可以重新创建这个问题,只要按F5,和空格键来杀死绿色侵略者,剩下的空白空间,我相信是矩形。 我的问题是:当子弹击中入侵者时,我怎样才能删除矩形,或者阻止它们相交 问题似乎是你没有意识到你的入侵者在Game1.cs的第524行被炸毁了。

作为练习,我在新华社制作了一个太空入侵者的克隆。在过去的5天里,我遇到了各种各样的障碍,尤其是我曾经处理过的碰撞。我终于让它工作了,只是为了解决另一个问题

来自玩家的子弹碰撞并摧毁入侵者,但是,我为碰撞创建的矩形仍然保留。(我想)

整个解决方案可以位于这里,这样你就可以重新创建这个问题,只要按F5,和空格键来杀死绿色侵略者,剩下的空白空间,我相信是矩形。


我的问题是:当子弹击中入侵者时,我怎样才能删除矩形,或者阻止它们相交

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

在入侵者对象(入侵者1、入侵者2等)中,您需要跟踪一个变量,以确定不变量是否处于活动状态。如果您愿意,您可能可以使用变量INVARIVERVIS,因为这似乎决定了您是否应该显示该入侵者

所以第524行应该改为

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

同样,也可以在lne 539上更改UFO命中检查器。

谢谢您的输入,我完全理解我在哪里搞砸了。谢谢你!不要在标题中添加“固定”。将答案标记为已接受(您确实这样做了)是将整个问题标记为“已解决”的方法。请将相关代码粘贴到您的问题中,以使其在将来不会遭受链接损坏(或阻止短消息服务和上传服务的公司防火墙后面的代码)。