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