Ergebnis 1 bis 13 von 13

Thema: Wie Komme ich wieder in eine Schleife rein???

  1. #1

    Wie Komme ich wieder in eine Schleife rein???

    Hi
    also ich habe folgendes problem, in meinem kleinem game ist es so wenn man gewonnen/verloren hat bekommt man eine xtra seite mit infos wo man auch das spiel beenden oder neustarten kann, das alles lasse ich in einer anderen schleife abspielen als das hauptspiel, so nun wenn man "nochmal" drückt müsste man ja in die alte schleife zurück nur wie stelle ich das an???

    Ich programiere mit Purebasic aber ich hoffe es gibt da algemeinheiten für programierer! ^__~

    danke im vorraus für eure hilfen.

    greetz MJcoox

  2. #2
    Leg die Spiel-Schleife in eine Funktion, dann kann sie am Anfang aufgerufen werden und am Ende...

  3. #3
    ok danke ich probiers mal! ^___^

  4. #4
    Generell bietet sich hier an, über States zu laufen.

    Die Grundidee ist:
    Das Programm befindet sich immer in einem bestimmten Zustand, wie Menü, Spielablauf und ähnliches.

    Dann hast du 1 Hauptschleife, die solange durchlaufen wird, bis der Status auf Exit/Quit whatever steht und das Prorgamm beendet wird.
    Abhängig vom State kann dann eine Unterfunktion gerufen werden, die entsprechenden restlichen Befehle enthält, wie zum Beispiel alles bezüglich des Spielablaufes. Um dann also vom Menü ins Spiel zu wechseln braucht man dann eigentlich nur die globale State-Variable umändern.

  5. #5
    Zitat Zitat von MagicMagor
    Generell bietet sich hier an, über States zu laufen.

    Die Grundidee ist:
    Das Programm befindet sich immer in einem bestimmten Zustand, wie Menü, Spielablauf und ähnliches.

    Dann hast du 1 Hauptschleife, die solange durchlaufen wird, bis der Status auf Exit/Quit whatever steht und das Prorgamm beendet wird.
    Abhängig vom State kann dann eine Unterfunktion gerufen werden, die entsprechenden restlichen Befehle enthält, wie zum Beispiel alles bezüglich des Spielablaufes. Um dann also vom Menü ins Spiel zu wechseln braucht man dann eigentlich nur die globale State-Variable umändern.
    Sowas?

    Code:
    [Begin Mega Schleife]
      [IF GAME]
        Gamezeuch...
        GAME = FALSE;
        ENDE = TRUE;
      [ENDIF]
      [IF MENÜ]
        Menü
        ...
        GAME = TRUE;
        MENÜ = FALSE;
      [ENDIF]
      [IF ENDE]
        ENDE...
        GAME = TRUE;
        ENDE = FALSE;
      [ENDIF]
    [End Mega Schleife]
    Wäre ne Idee... Meine Idee hab ich so gepostet wie ich's unter Delphi realisiert hätte. PureBasic hab ich mir noch nie angesehn...

  6. #6
    das wäre natürlich auch eine idee, das muss ich mal ausprobieren!

  7. #7
    @Crash
    So ungefähr, nur mit einer statt unmengen an variablen =)

    Code:
    while (game_state != 0) {
      select game_state  {
      case 1:
        game();
        break;
      case 2:
        menu();
        break;
      default:
        game_state = 0;
       }
    }
    Der Select-Kram ist vermutlich syntaktisch total verkehrt, aber in etwa so sieht es dann normalerweise aus.

  8. #8
    hm also die erste variante mit der ifabfrage funzt!

    Aber das mit dem switch is auch nicht über, maguggen vlt beim nächsten spiel. ^__~


    danke an euch leude!

  9. #9
    Ich würde die Case Schleife nehmen xD da brauchste nur 1 Vari und musst nicht so viel Tippen ...leichter zu durchschauen

  10. #10
    Zitat Zitat von Aretures
    Ich würde die Case Schleife nehmen xD da brauchste nur 1 Vari und musst nicht so viel Tippen ...leichter zu durchschauen
    wieso, so brauch ich doch auch nur eine Variable.

    Code:
    repeat
        if schalter = 0
            #code#
        elseif schalter = 1
            #code#
        elseif schalter = 2
            #code#
        endif
    forever
    Ich brauch dafür nur die variable "schalter" verändern, ganz leicht! Was anderes ist ein switch eigendlich auch nicht, er vereinfacht das ganze nur ein wenig iIndem man nicht mit sovielen If abfragen rumhantieren muss.

  11. #11
    Nunja, mag zwar einfach sein, aber man muss ja nicht gleich alles abfragen. Bringt Performance Verluste. Wenn man mehrere Schleifen in die Schleife packt sollte es schneller laufen. Also:

    Pseudo
    Code:
    ProgrammInitZeugs;
    VariablenFunktionenKlassenBla;
    ...
    do
    {
    
     if state = game
      {
       do while state = game
        {
         // Das SPIEL
        }
      } 
     if state = score
      {
       do while state = score
        {
         // Liste
        }
      } 
     if state = ...
      {
       do while state = ...
        {
         // ...
        }
      } 
    }
    
    loop
    ...
    EndeZeugs
    EDIT:
    Ich glaub ich bin doch etwas müde. Ich hab genau das selbe wie du, nur du hast keine do while Schleifen.

    Geändert von AgentJG (14.10.2005 um 22:15 Uhr)

  12. #12
    Noch toller isses, wenn die States Objekte sind und in einem Vektor gespeichert werden. Das vereinfacht den Übergang zwischen Spiel und Menü. Irgendwo hatte ich da mal ein Tutorial *such* Hm, ich finds grad nicht mehr. Ich weiß nur noch, dass es ne deutsche Seite mit schlichtem hellem Design war. Oder war das doch was anderes?

    Edit:
    Es war doch ne englische Seite und ich hab sie gefunden: http://tonyandpaige.com/tutorials/game1.html

    Geändert von DFYX (14.10.2005 um 22:59 Uhr)

  13. #13
    Zitat Zitat von DFYX
    Noch toller isses, wenn die States Objekte sind und in einem Vektor gespeichert werden. Das vereinfacht den Übergang zwischen Spiel und Menü. Irgendwo hatte ich da mal ein Tutorial *such* Hm, ich finds grad nicht mehr. Ich weiß nur noch, dass es ne deutsche Seite mit schlichtem hellem Design war. Oder war das doch was anderes?

    Edit:
    Es war doch ne englische Seite und ich hab sie gefunden: http://tonyandpaige.com/tutorials/game1.html
    Zitat Zitat von MJCoox
    Hi
    also ich habe folgendes problem, in meinem kleinem game ist es so wenn man gewonnen/verloren hat bekommt man eine xtra seite mit infos wo man auch das spiel beenden oder neustarten kann, das alles lasse ich in einer anderen schleife abspielen als das hauptspiel, so nun wenn man "nochmal" drückt müsste man ja in die alte schleife zurück nur wie stelle ich das an???

    Ich programiere mit Purebasic aber ich hoffe es gibt da algemeinheiten für programierer! ^__~

    danke im vorraus für eure hilfen.

    greetz MJcoox
    In PureBasic gibt es zwar Interfaces, aber ich weiß nicht ob die genauso arbeiten wie C++ Klassen. Ich zieh mir gleich mal (wieder) die Demo und schau ob das umsetztbar ist.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •