Mehrere Schleifen in der Hauptschleife
Übersicht

![]() |
ApprauuuuBetreff: Mehrere Schleifen in der Hauptschleife |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo !
ich hab da so ein probelm... ich will ein weltraumshooter machen, hab da meine hauptschleife und wollte eine nebenschleife in die hauptschleife einbinden, welche die kollision mit dem speiler und gegnern überprüft. nur wenn er einmal bei der nebenschleife drin ist kommt er nicht mehr raus und die hauptschleife läuft nicht mehr weiter.... wie mach ich es, dass beide schleifen gleichzeitig schön weiter laufen ?? |
||
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist nicht ganz einfach. Poste den Code, sonst kann dir niemand helfen. | ||
![]() |
Apprauuuu |
![]() Antworten mit Zitat ![]() |
---|---|---|
den ganzen code kann ich nicht zeigen
der ist zu laaaaaaang .... ![]() hier ist aber die kleine schleife, die in der großen sein sollte While leben_1 > 0 If ImagesCollide(held, x_koordinate, y_koordinate, 0, gegner(gegner_array), x_gegner(x_gegner_array), y_gegner(y_gegner_array), 0) Then leben_1 = leben_1 - 1 Print "Autsch!" EndIf gegner_array = gegner_array + 1 x_gegner_array = x_gegner_array + 1 y_gegner_array = y_gegner_array + 1 If gegner_array = 29 Then gegner_array = 1 EndIf If x_gegner_array = 29 Then x_gegner_array = 1 EndIf If y_gegner_array = 29 Then y_gegner_array = 1 EndIf EndIf Wend das kann echt sein dass ich ne komplett falsche schleife drin genommen hab... ich weiß es nicht ![]() (ich hab das auch einfach in die hauptschleife reingesetzt...) |
||
junky |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hm , das bringt uns jetz nur leider auch nicht viel weiter ... es muss ja der zusammenhang zwischen der hauptschleife und deiner "kleinen" schleife festgestellt werden - und das geht recht schlecht mit nur einer schleife ![]() allerdings... schonma dran gedacht, dass dein leben_1 vllt nie 0 wird ? - da nie eine kollision passiert, solange du in der schleife bist ? |
||
gestern stand ich noch vorm Abgrund
heute bin ich einen Schritt weiter... |
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
machs doch einfach mit functionen . Die sind doch eigentlich fast das selbe, außerdem wird der code dadurch viel übersichtlicher, nur du darfst nicht vergessen alle Variablen die du in den functionen nutzt global zu setzen
FrEeMaN |
||
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28 |
![]() |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke du musst einfach "if gegner_array=29 then exit" schreiben statt die Variable gegner_array wieder auf 1 zu setzen.
Bringt ja nichts ein und die selbe Prüfung immer und immer wieder zu machen, wenn sich überhaupt nix ändert. Außerdem reicht eine Variable, also gegner_array. Die kannst du überall für gegner_array_x und gegner_array_y einsetzen und dir dann die 2 überflüssigen Erhöhungen und Bedingungen sparen. (ganz einfach weil alle 3 Variablen ja sowieso immer den selben wert haben!) - sieht jedenfalls in dem Code so aus |
||
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com | www.CarnageContest.com | www.Stranded3.com |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] While leben_1 > 0
... ... ... For gegner_array = 0 To 28 If ImagesCollide(held, x_koordinate, y_koordinate, 0, gegner(gegner_array), x_gegner(x_gegner_array), y_gegner(y_gegner_array), 0) Then leben_1 = leben_1 - 1 Print "Autsch!" EndIf Next ... ... ... Flip Wend so in etwa, sollte es gehen .... |
||
[BB2D | BB3D | BB+]
|
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das While/Wend hier komplett weglassen. | ||
solitaire |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group