Spiel planen mit mehreren Level
-
Bis jetzt habe ich Spiele programmiert wie z.B. Snake oder Tetris. Jetzt habe ich mich an 3D herrangewagt. Und auch sehr schöne Sachen(Demos) programmiert. Ich überlege mir gerade wie man so ein komplexeres Spiel plant. Ein 3D-Spiel mit mehrern Level. Z.B. ein Space Sim.
Macht man das in etwa so:
-GameStart()
case 1
-LoadLevel1()
-UpdatePlayer()
-UpdateEntity()
case 2
-LoadLevel2()
-UpdatePlayer()
-Update...usw.Ist das so in etwa die Herangehensweise?
Was habt ihr für Ideen dazu?
-
while(THE_GAME) { select level case 1 LadeDatenLevel1 case 2 LadeDatenLevel2 case 3 LadeDatenLevel3 case 4 THE_GAME=FALSE while(MAIN) { Spielerbewegen() Gegnerbewegen() if (alle GEGENER TOT) { Level++ MAIN=FALSE } if (ESC) { LevelSpeichern() Programmbeenden() } } }
-
Ich weiß ja nicht wie du die Levels lädst aber wenn es aus einer Datei ist kann man auch ne Funktion machen mit Ladelevel(Datei) oder eine Zahl für die nr des levels also Ladeleve(int). Dann sieht es ca. so aus, dass du in eine Variabel speicherst welches level man ist und die an die funktion übergeben wird und wenn man das level geschafft wird wird um 1 erhöht.
-
while(THE_GAME) { if(level==4) THE_GAME=FALSE else LoadLevel(level) while(MAIN) { Spielerbewegen() Gegnerbewegen() if (alle GEGENER TOT) { level++ MAIN=FALSE } if (ESC) { LevelSpeichern() Programmbeenden() } } }
so besser
-
Jo so wars gedacht nur das wichtige hast du ja eigentlich vergessen. Bei der 1. Version müsste man für jedes level eine Funktion machen. Und wenn alle Level gleich aufgebaut sind und aus Dateien geladen werden find ich das so eleganter.
anstatt:
LadeDatenLevel1() { LeseLevelAusDatei1 } LadeDatenLevel2() { LeseLevelAusDatei2 } ... while(THE_GAME) { select level case 1 LadeDatenLevel1 case 2 LadeDatenLevel2 case 3 LadeDatenLevel3 case 4 THE_GAME=FALSE while(MAIN) { Spielerbewegen() Gegnerbewegen() if (alle GEGENER TOT) { Level++ MAIN=FALSE } if (ESC) { LevelSpeichern() Programmbeenden() } } }
dann so:
LoadLevel(level) { LeseLevelAusDatei(level.map) } while(THE_GAME) { if(level==4) THE_GAME=FALSE else LoadLevel(level) while(MAIN) { Spielerbewegen() Gegnerbewegen() if (alle GEGENER TOT) { level++ MAIN=FALSE } if (ESC) { LevelSpeichern() Programmbeenden() } } }
-
Ich fände es ungleich sinnvoller, wenn das irgendwie so funktioniert:
int iLevelZahl= 1; std::osstringstream oss; while (bNochnLevel) { oss << "bla" << iLevelZahl << ".bla"; load( oss.str().c_str(); ... iLevelZahl++; }
-
UNGLAUBLICH!!! TGGC HAT MAl WAS SINNVOLLES GESCHRIEBEN WODURCH MAN MAL ETWAS LERNEN KANN!!!!! WOOOHOOOO!!! UNGLAUBLICH!!! *rot im kalender anstreich*
-
weiter so TGGC
-
TGGC for president!!!
TGGC for bundeskanzler!!!
-
@TGGC
So hatte ich das auch ungefähr Gedacht nur ich wusste net wie das geht ^^.