ich beziehe die Daten der Sprites aus einer verknüpften Liste aus Parameter. Daten wie x und y Position usw.
Das Problem ist das ich Sie nicht leeren kann ohne das es nen RunTime Error gibt oder das die Sprites nicht mehr angezeigt werden.
Könnt ihr mir da bei einer Lösung helfen?
LG
Manuel
Hier der Code:
Code: Alles auswählen
Structure struct_enemy
x.i
y.i
speedX.i
speedY.i
objectID.i
armor.i
EndStructure
Global NewList enemy.struct_enemy()
Code: Alles auswählen
Procedure AddEnemy(x, y, speedX, speedY, objectID, armor)
AddElement(enemy())
With Enemy()
\x = x
\y = y
\speedX = speedX
\speedY = speedY
\objectID = objectID
\armor = armor
EndWith
EndProcedure
Code: Alles auswählen
Procedure EnemySetPlanes(c.l, List Planes.struct_enemy())
Protected i
Define x, y, speedX, speedY, objectID, armor
AddElement(Planes())
With Planes()
\x = x
\y = y
\speedX = speedX
\speedY = speedY
\objectID = objectID
\armor = armor
EndWith
If enemy\ENEMY_PLANE_DELAY = 0 And enemy\ENEMY_ON_SCREEN < #MAX_ENEMY_ON_SCREEN
ADDEnemy(0 - SpriteWidth(#Sprite_EYPlane), Random(200 - SpriteHeight(#Sprite_EYPlane),0 ) , Random(3, 1),0 ,2, 100) ;x, y, speedX, speedY, objectID
Planes()\x + Planes()\speedx
enemy\ENEMY_PLANE_DELAY = #ENEMY_SET_PLANE_DELAY : enemy\ENEMY_ON_SCREEN + 1
ElseIf enemy\ENEMY_PLANE_DELAY > 0 : enemy\ENEMY_PLANE_DELAY - 1 : EndIf
ForEach planes()
If planes()\Armor < 1 And planes()\objectID = 2
For i = 0 To 4
ADDeffect(planes()\x, planes()\y, Random(6)-3, Random(6)-3, 100, 108, 5) ;x, y, speedX, speedY, spriteStart, spriteEnd, animSpeed
Next
:DeleteElement(planes()): PlaySound(#Sound_FXExplosion) :enemy\ENEMY_ON_SCREEN - 1 : EndIf
Next
ForEach Planes()
If planes()\objectID = 2
DisplayTransparentSprite(#Sprite_EYPlane, Planes()\x,Planes()\y)
Planes()\x + Planes()\speedx
PlanesLocationX = Planes()\x
PlanesLocationY = Planes()\y
If Planes()\x > 1024 + SpriteWidth(#Sprite_EYPlane) : DeleteElement(Planes()) : enemy\ENEMY_ON_SCREEN - 1 : EndIf
EndIf
Next
EndProcedure
Code: Alles auswählen
EnemySetPlanes(1,enemy())