Bild wird nicht angezeigt

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Beitrag von kswb73 »

2 Fehler.
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
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Thx Code läuft fast Perfekt

Wenn die erste Berührung mit einem Gegner stattfindet ,crasht er ...
Hab ich aber selber hinbekommen 8)
Antworten