[Gelöst :D] Kugeln fliegen durch Zombies durch
Übersicht

![]() |
Horst der BiberBetreff: [Gelöst :D] Kugeln fliegen durch Zombies durch |
![]() Antworten mit Zitat ![]() |
---|---|---|
überseh ich da einfach irgendwas oder kann man listen gar nicht verschachtelt durchlaufen lassen?
Code: [AUSKLAPPEN] Local i:TZombie
Local j:TGeschoss For j=EachIn geschosse j.update() If j.x<0 Or j.x>w*32-1 Then geschosse.remove(j) ElseIf map[(j.x)/32,(j.y)/32]>0 Then geschosse.remove(j) Else For i=EachIn zombies If i.hit(j.x,j.y) Then geschosse.remove(j) Exit EndIf Next EndIf Next j=Null |
||
- Zuletzt bearbeitet von Horst der Biber am Mi, März 14, 2007 14:51, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich sehe da nichts falsches.
Ich würde spontan drauf tippen, dass das hit nie true zurück gibt. Natürlich immer angenommen das ganz oben im Code SuperStrict steht, sonst könnten die nicht funktionierenden Local reinpfuschen (da local nur dann wirklich local ist, wenn mindestens strict genutzt wird) PS: Ich würde die struktur jedoch ein wenig anders ansetzen. Speicher in TMonster und TGeschoss den TLink den du bei Tlist.addlast bekommst. Dann kannst du TLink.remove nutzen. Damit muss es nicht durch die ganze liste durchgehen um das objekt zu entfernen, was recht schnell zu einer nutzlosen Zeitverheizerei wird leider. Wenn du dann auch noch die Listen direkt in den Types machst (global) bekommst du noch net ma mehr probleme mit der namensgebung ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Horst der Biber |
![]() Antworten mit Zitat ![]() |
---|---|---|
hit gibt schon true zurück und superstrict hab ich immer drin. schliesslich sterben die zombies ja. nur werden die geschosse dann irgendwie nicht gelöscht..
danke für den tipp mit dem link. wusste vorher gar nicht, dass bei remove die liste noch ma durchlaufen wird. geht aber trotzdem irgendwie nicht. hab mal den ganzen source hochgeladen: http://horstderbiber.ho.funpic...former.rar edit: sry tippfehler |
||
- Zuletzt bearbeitet von Horst der Biber am Di, März 13, 2007 23:43, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gibt nen 404 wenn man versucht darauf zuzugreifen
Was du jedoch testen könntest wäre: Code: [AUSKLAPPEN] Local i:TZombie Local j:TGeschoss .loopGeschosse For j=EachIn geschosse j.update() If j.x<0 Or j.x>w*32-1 Then geschosse.remove(j) ElseIf map[(j.x)/32,(j.y)/32]>0 Then geschosse.remove(j) Else For i=EachIn zombies If i.hit(j.x,j.y) Then geschosse.remove(j) continue loopGeschosse EndIf Next EndIf Next j=Null |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Horst der Biber |
![]() Antworten mit Zitat ![]() |
---|---|---|
das mit continue geht ned, weil er dann wieder zum anfang der schleife geht und dann wird ja wieder auf j zugegriffen. ich denk ma du meinst goto. aber das geht bei strict nicht..
hab s noch ma anders aufgebaut und jetzt geht s. :D Code: [AUSKLAPPEN] Local i:TZombie
Local j:TKugel For j=EachIn geschosse j.update() If j.x<0 Or j.x>w*32-1 Then geschosse.remove(j) ElseIf map[(j.x)/32,(j.y)/32]>0 Then geschosse.remove(j) EndIf Next j=Null For i=EachIn zombies i.update() collidewithmap(TObjekt(i)) For j=EachIn geschosse If i.hit(j.x,j.y) Then geschosse.remove(j) EndIf Next j=null If i.died Then zombies.remove(i) i=Null EndIf Next danke für die hilfe und so^^ |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group