Mehrere Schleifen in der Hauptschleife

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Apprauuuu

Betreff: Mehrere Schleifen in der Hauptschleife

BeitragSa, Mai 08, 2004 11:32
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Mai 08, 2004 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist nicht ganz einfach. Poste den Code, sonst kann dir niemand helfen.

Apprauuuu

BeitragSa, Mai 08, 2004 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
den ganzen code kann ich nicht zeigen
der ist zu laaaaaaang .... Shocked (hab noobig geprogt)

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 Mad
(ich hab das auch einfach in die hauptschleife reingesetzt...)
 

junky

BeitragSa, Mai 08, 2004 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink

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

BeitragSa, Mai 08, 2004 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
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

DC

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragSa, Mai 08, 2004 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Mai 08, 2004 13:07
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Mai 08, 2004 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Das While/Wend hier komplett weglassen.
solitaire

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group