1.) Du musst das ForEach for die Die Kollisionabfrage mit den Kugeln setzen. Sonst wird nur beim aktuellen Gegner überprüft ob er getroffen wurde, ist keiner ausge wählt so gibt es einen Fehler (the linked list doesn't have a current Element | Die Liste hat kein aktuelles Element).
2.) Du musst die Kollisionsabfrage mit den Kugeln auch in ForEach Bullet ... next packen. (gleicher Grund wie oben).
Des weiteren solltest du besser mit resetList() und der While Schleife arbeiten, da es in der ForEach Schleife beim löschen zu Problemen kommen kann.
Überarbeiteter Code
Code: Alles auswählen
ResetList(Gegner())
While NextElement(Gegner())
ResetList(Bullet())
While NextElement(Bullet())
If SpriteCollision(Gegner()\art , bullet()\x,bullet()\Y ,Gegner()\bild,Gegner()\x,Gegner()\y)
Gegner()\armor - 25
EndIf
Wend
Gegner()\X - Gegner()\speed
DisplayTransparentSprite(Gegner()\art,Gegner()\x,Gegner()\y)
If SpriteCollision(1, SpielerX,SpielerY ,Gegner()\art,Gegner()\x,Gegner()\y)
Leben - 50
DeleteElement(Gegner())
EndIf
If Gegner()\armor = 0
punkte + 100
levelUP + 100
DeleteElement(Gegner())
EndIf
If gegner()\X < -100
DeleteElement(Gegner())
EndIf
If Leben = 0
Debug "Tod Spieler"
EndIf
Wend