Goto in Funktionen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Davok`xarden

Betreff: Goto in Funktionen

BeitragSa, Mai 27, 2006 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weis ihr hasst all Goto aber wisst ihr wie man Goto in Functionen benutzt ???
Kann man eine Sprungmarke als Global defieniren ???

Danke
Gott hat euch alle liebt, aber der Rest denk ihr seid [ZENSIERT
 

Dreamora

BeitragSa, Mai 27, 2006 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Goto sind für Sprünge im gleichen Scope gedacht, nicht um in Funktionen rein und aus ihnen raus zu springen.

Für solche Fälle wäre Gosub vielleicht das, wonach du suchst ...
Oder ein einigermassen brauchbares Codedesign, das Goto garnicht erst braucht.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Davok`xarden

BeitragSa, Mai 27, 2006 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein hilft mir leider nicht denn ich habe mein Hauptmenü in eine Funktion gepackt und wenn man auf neues Spielklicht soll das Programm im Hauptprogramm zu einer bestimmten Schleife springen.
Gott hat euch alle liebt, aber der Rest denk ihr seid [ZENSIERT
 

Dreamora

BeitragSa, Mai 27, 2006 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann setze eine globale Variable Namens State

In der Funktion setzt du diesen State
Nach der Funktion fürs menü machst du dann ein Select State und springst dann entsprechend.

Einfach, nicht? Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Davok`xarden

BeitragSa, Mai 27, 2006 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:

Einfach, nicht? Smile


Muss ich dann hinter jedem Hauptmenü aufruf ein select einbauen ???

trozdem Danke
Gott hat euch alle liebt, aber der Rest denk ihr seid [ZENSIERT

Artemis

BeitragSa, Mai 27, 2006 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Lies dir einfach mal dieses Tutorial durch:
https://www.blitzforum.de/foru...php?t=6780
 

Dreamora

BeitragSa, Mai 27, 2006 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Was heisst "hinter jedem"
Es gibt nur 1 Hauptmenü in einem Programm.
Submenüs sind auch Teil des Hauptmenüs (wie Optionen etc).

Und nach diesem Funktionsaufruf (nicht nach der Funktion im Code), gehört dann ein Select hin, das den State - oder auch direkt eine Funktionsrückgabe - auswertet und den entsprechenden Code ausführt.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Davok`xarden

BeitragSo, Mai 28, 2006 9:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
Was heisst "hinter jedem"
Es gibt nur 1 Hauptmenü in einem Programm.
Submenüs sind auch Teil des Hauptmenüs (wie Optionen etc).


Also mein Spiel hat mehre Spielschleifen zwischen denen Gewechselt wird und in jeder wird bei Druck auf ESC dasselbe Menü aufgerufen (in einer Funktion). Das dieses Menü den Button "Neues Spiel" enthählt muss ich nach jedem Menü-aufruf in die "Neues Spiel"-schleife wechseln. Da das mit Goto nicht geht hast du ja vorgeschlagen ,dass wenn auf "neues Spiel" geklickt wird eine Variabel geändert wird und dann nach jedem Funktion aufruf im Hauptprogramm mit Select die Variabel überprüft wir und dann im Hauptprogramm ein Goto verwendet wird.

(Also so hab ich es verstanden)
Gott hat euch alle liebt, aber der Rest denk ihr seid [ZENSIERT
 

Dreamora

BeitragSo, Mai 28, 2006 10:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, garkein Goto wird verwendet, da es nicht nötig ist.


Je nachdem, was im Menü ausgewählt wird, wird etwas anderes gemacht.
Am Start könnte das ein neues Spiel sein, könnte aber genau so gut auch beenden oder Spiel laden sein oder sonst etwas.

Dabei würde ich bei der Menüfunktion auch einen Eingabewert verwenden, der dir sagt, von wo aus das Menü angezeigt wird.
zb macht es bei laufendem Spiel keinen Sinn neues Spiel anzuzeigen und logischerweise sollte es im Normalfall bei laufendem Spiel danach auch weitergehen mit dem Spielen (meistens gibt es dort nur Optionsänderungen oder Speichern/Laden, die man nutzt von gelegentlichem Beenden abgesehen), nicht mit einem neustart des Levels oder des gesamten Spieles
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

TheShadow

Moderator

BeitragSo, Mai 28, 2006 13:05
Antworten mit Zitat
Benutzer-Profile anzeigen
GOTO wird verwendet, um aus einer komplexen, tief verschachtelten Schleife entweder nach vorne oder nach hinten herauszuspringen.

Für alles andere wird GOTO nicht benötigt.
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Davok`xarden

BeitragMi, Mai 31, 2006 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab mir jetzt das tut durchgelesen das Artemis gepostet hat. Damit sind jetzt alle Fragen geklärt.

Thx & Mfg Davok`xarden
Gott hat euch alle liebt, aber der Rest denk ihr seid [ZENSIERT

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group