Ich habe grad an einem kleinen Weltraumshooter geschrieben aber jetzt habe ich ein Problem mit dem ForEach. Pb gibt immer eine FehlerMeldung an "ForEach() is not a function,an arrey or linked list" (wenn ich das programm starten will) aber ich habe doch
Code: Alles auswählen
NewList RoketI.RoketI()
Kann mir bitte jemand helfen?
ich stell den code mal rein
Code: Alles auswählen
InitMovie()
InitSprite()
InitKeyboard()
InitMouse()
InitSound()
OpenScreen(1024,768,32,"name")
Global PlayerX.w
Global PlayerY.w
PlayerX = 300
PlayerY = 300
LoadSprite(0, "F:\Dokumente und Einstellungen\???\Desktop\flayer\Bilder\player.bmp")
LoadSprite(1,"F:\Dokumente und Einstellungen\???\Desktop\flayer\Bilder\RoketI.bmp")
Structure RoketI
x.l
y.l
speedX.l
speedY.l
EndStructure
NewList RoketI.RoketI()
Procedure AddRoketI(x, y, speedX, speedY) ;Eine Prozedur zur Vereinfung der Weiteren Arbeit
AddElement(RoketI())
RoketI()\x = x
RoketI()\y = y
RoketI()\speedX = speedX
RoketI()\speedY = speedY
EndProcedure
Repeat
ExamineMouse()
ExamineKeyboard()
ClearScreen(0,255,0)
DisplayTransparentSprite(0,PlayerX,PlayerY)
; Steuerung
If KeyboardPushed(#PB_key_Left)
PlayerX - 2
EndIf
If KeyboardPushed(#PB_key_Right)
PlayerX + 2
EndIf
If KeyboardPushed(#PB_key_up)
PlayerY - 2
EndIf
If KeyboardPushed(#PB_key_Down)
PlayerY + 2
EndIf
If KeyboardPushed (#PB_key_LeftControl)
AddRoketI(playerX+25, playerY-3, 10, 0)
EndIf
ForEach(RoketI())
If RoketI()\x > 800 : DeleteElement(RoketI())
ElseIf RoketI()\x < 0 : DeleteElement(RoketI())
ElseIf RoketI()\y > 600 : DeleteElement(RoketI())
ElseIf RoketI()\y < 0 : DeleteElement(RoketI())
EndIf
Next
ForEach(RoketI())
DisplayTransparentSprite(RoketI, RoketI()\x, RoketI()\y)
RoketI()\x + RoketI()\speedX
RoketI()\y + RoketI()\speedY
Next
Return
FlipBuffers()
Until KeyboardPushed(1):End