Я делаю выживание и пытаюсь удалить объект, когда он уходит с экрана. Вот код:Удалите объект, когда в a для каждого цикла
Public Sub tmrEnemyMove_Tick(sender As Object, e As EventArgs) Handles tmrEnemyMove.Tick
Dim koopaAnimation As Boolean
For Each enemy As enemy In lstEnemy
enemy.enemy.Left = enemy.enemy.Left - 20
If enemy.enemy.Tag = "koopa" Then
enemy.enemy.Image = Image.FromFile(Application.StartupPath + "\Graphics\koopa" + Trim(Str(koopaPosition)) + ".png")
If koopaAnimation = False Then
If koopaPosition = 0 Then
koopaPosition = 1
Else
koopaPosition = 0
End If
End If
koopaAnimation = True
End If
If picMario.Left < enemy.enemy.Left AndAlso enemy.enemy.Left < picMario.Right Or picMario.Left < enemy.enemy.Right AndAlso enemy.enemy.Right < picMario.Right Then
If picMario.Top < enemy.enemy.Top AndAlso enemy.enemy.Top < picMario.Bottom Or picMario.Top < enemy.enemy.Bottom AndAlso enemy.enemy.Bottom < picMario.Bottom Then
'MsgBox("Collision")
End If
End If
If enemy.enemy.Left < 0 Then
lstEnemy.Remove(enemy)
Me.Controls.Remove(enemy.enemy)
End If
Next
End Sub
Ошибка я получаю: Необработанное исключение типа «System.InvalidOperationException» произошло в mscorlib.dll Дополнительная информация: Коллекция была изменена; операция перечисления может не выполняться.
Если кто-нибудь может помочь, это будет здорово, спасибо.
Вы Канот изменить коллекцию, как это в то время как цикл через него , по понятным причинам, если вы думаете об этом. Получите ссылку на объект, находясь в цикле, затем удалите aterwards – DavidB