我正在为我的 HSC 软件设计项目用 Visual Basic 编写一个太空侵略者风格的游戏。作为其中的一部分,我使用以下代码行来检测敌人是否击中了玩家的船。
If ship.Bounds.IntersectsWith(enemy(i).Bounds) And enemy(i).Visible = True And ship.Visible = True Then
此代码位于针对每个敌人运行的 For 循环中。我使用该循环来移动敌人以及检查镜头和其他东西。此 For 循环在设置为 1 毫秒延迟的 Timer 内运行。
我在这一行收到 NullReferenceException 错误,它说对象引用未设置为对象的实例。我知道这意味着没有将敌人(i)或船之一设置为对象实例或其他东西,因为我已经关闭了表单。这是有趣的一点:
首先,我什至没有加载此表单时收到此错误。在应用程序运行期间,此表单从未打开过。
其次,即使它正在运行,它也发生在我用 Timer2.Stop() 停止计时器之后的一段时间。我检查了我的代码,这段代码不可能尝试执行。
我现在很迷茫,这是怎么回事?