Mehrere Level?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

M0rgenstern

Betreff: Mehrere Level?

BeitragMo, Apr 06, 2009 9:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.

Tut mir leid, ich weiß dass das ne totale Noob Frage ist, aber ich habs noch nie gemacht.
Ich habe vor ein spiel mit mehreren (unterschiedlichen) Levels zu schreiben. Wenn ich aber jetzt in der Hauptschleife bin, dann kann ich ja nicht extra für jedes Level ne neue Schleife anlegen.
Muss ich das also mti Variablen gestalten, also dass ich sag zum beispiel: Level=1 und wenn das level gewonnen wurde dann Level=Level+1?
Und das dann in der Hauptschleife anfangs abfrage und je nachdem eben das Level laden lasse?



Danke schonmal, LG,
M0rgenstern

ozzi789

BeitragMo, Apr 06, 2009 9:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Kommt ganz darauf an wie du dein Level lädst, also als Dim feld, 2D / 3D?
Infos sind nützlich Exclamation
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Silver_Knee

BeitragMo, Apr 06, 2009 10:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Nehmen wir uns doch ein Vorbild. zB Half-Life. Da sind die Level auch sehr unterschiedlich aber es wird auch immer nur eine Schleife gestartet. Dabei lädt das Spiel aus der Datai pro level alles was es brauch: Der Spieler bewegt sich immer gleich, der Rest wird dann über SELECT-CASE herausgesucht...

M0rgenstern

BeitragMo, Apr 06, 2009 13:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, WIE ich das mache weiß ich ja noch nicht, da ich noch nichteinmal weiß welches Spiel ich etwa programmieren möchte. 2D wirds auf alle Fälle.

Angenommen ich mach ein Spiel aus der Vogelperspektive. Ohne SCrolling. Man hat nur einen Bildschirm und sieht das ganze "haus" in dem man ist von oben. Kann also praktisch in jedes Zimmer reingucken, bewegt sein Männchen dann mit dem Pfeiltasten etc. Jetzt soll jedes Level anders aussehen udn desto höher die Level sind desto mehr gegner sollen kommen bzw desto stärker sollen sie sein.
Wenn ich dann aber verschiedene Gegnertypen habe die erst nach und nach dazu kommen sollen, wie könnte man das bewerkstellen, dass ab dann erst auf diesen Gegner zugegriffen wird?

EInfach mit if Level >= 2 then
(Function)
??

Lg, M0rgenstern

orpheus_2003

BeitragMo, Apr 06, 2009 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm.

Eine Möglichkeit wäre z.B.

Du machst das Level als Tilemap.
Und die Gegner machst du auf einen 2 Layer.
Dann kannst du für jeden Level Map und Gegner laden.

z.B.
Level end - Level=level+1 - Levelload (und hier Map + Gegner einlesen)

Gruß Orpheus
GazerStar - the beginning
http://gazerstar.lexigame.de/
Wizard (Worktitel)
http://wizard.lexigame.de
 

FWeinb

ehemals "ich"

BeitragMo, Apr 06, 2009 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Man könnte es auch so Erklären:

Die Spiel logik bleibt immer gleich, nur das Level ändert sich, das heißt du schreibst dir eine Funktion LoadLevel() welche das Level läd. Und danach schreibst du dir eben eine Funktion, von mir aus Game(), welche alle Level "verstehen" kann.

Ich hoffe es ist so verständlich.

mfg

ich
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

Xeres

Moderator

BeitragMo, Apr 06, 2009 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest die Hauptschleife z.B. so gestallten:
Code: [AUSKLAPPEN]
Global Game_State
Const Game_State_MENU = 1, Game_State_PLAY = 2, Game_State_PAUSE = 3, Game_State_HIGHSCORE = 4

Repeat
   Cls
   
   Select Game_State
         
      Case Game_State_MENU
         Run_Menu()
         
      Case Game_State_PLAY
         Run_Game()
         
      Case Game_State_PAUSE
         Run_PauseMenu()
         
      Case Game_State_HIGHSCORE
         Run_Highscore()
         
   End Select
   
   Flip(0)
   WaitTimer(Timer)
Until KeyHit(KEY_ESC)

Dein Spiel kann sich in verschiedenen Zuständen befinden, die du durch Zuweisen von "Game_State" ändern kannst. Die Konstanten machen es leichter aus dem Code heraus zu lesen was wo geschehen soll.

Je nach dem wie du die Level aufbaust, kannst du alle Daten aus einer Datei laden oder eine Variable mitzählen...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group