public MainForm() { this.Width = 1000; this.Height = 800; InitializeComponent(); CenterToScreen(); this.Click += new EventHandler(this.MainForm_Click); this.KeyPress += new KeyPressEventHandler(this.MainForm_KeyPress); curCtxt = BufferedGraphicsManager.Current; buffer = curCtxt.Allocate(this.CreateGraphics(), this.DisplayRectangle); s = new State(); r = new Renderer(this, s); camera = new CAMERA(); }
//Update protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); warten += (float)gameTime.ElapsedGameTime.TotalSeconds; //speichert vergangene Spielzeit in Sekunden // warten2 += (float)gameTime.ElapsedGameTime.TotalSeconds; //speichert vergangene Spielzeit in Sekunden //Spielstatus switch (spielStatus) //Entscheidung welcher Spielstatus erreicht wurde Menü, spielen GameOVer { case State.Menue: { status = 1; // KeyboardState keyState = Keyboard.GetState(); if (keyState.IsKeyDown(Keys.N)) { spielStatus = State.spielen; MediaPlayer.Play(sound.bgrSong); sound.bewaffnet.Play(); } else if (keyState.IsKeyDown(Keys.Q)) { this.Exit(); } break; } case State.spielen: { KeyboardState keyState = Keyboard.GetState(); //Fkt die Lvl unabhängig sind status = 2; spieler.Update(gameTime); gc.Update(gameTime); //remove, schneller, bewegen spielerTrifft(); //iteminteraktion + unsichtbarmachen + punkteberechnung itemZerstoeren(); gegnerTrifft(); minionKontakt(); projektilTreffen(); schutzGetroffen(); minionTod(); itemInteraktGeg(); //Prüft ob Iteminteraktion stattfindet punkteBerechnung(); itemTeemo(); foreach (Item it in ListeItem) it.Update(gameTime); foreach (Animation a in listeAnimation) a.Update(gameTime); ItemSporn(); neuesLevel(); lvlSkip(); if (skipLvl3 == false && warten2 >= 5) { sound.wahlSound(); sound.veigarSpruch(sound.swahl); warten2 = 0; } switch (level) //Je nachdem welches Level geladen wird andere Funktionen { case Level.Lvl1: { break; } //Case Lvl1 Ende case Level.Lvl2: { status = 22; //Für Hintergrundklasse Hintergrund Lvl 2 zeichnen break; } //Case Lvl2 Ende case Level.Lvl3: { status = 23; //Für Hintergrundklasse Hintergrund Lvl 3 zeichnen break; }//Case Lvl3 Ende } //Case Level Ende if (spieler.leben > 0 && gc.ListeGegner.Count == 0) { sound.wahlSound(); sound.playLachen(sound.swahl); MediaPlayer.Play(sound.menuSong); spielStatus = State.gewonnen; } //Spieler hat kein Leben mehr if (spieler.leben == 0) { sound.tod.Play(); MediaPlayer.Play(sound.goSong); spielStatus = State.GameOver; } break; } //Case State:spielen ende case State.GameOver: { status = 3; //GameOver Hintergrund KeyboardState keyState = Keyboard.GetState(); if (keyState.IsKeyDown(Keys.J)) { //Clearen & Neustart vorbereiten gc.ListeGegner.Clear(); //Leert die Gegner Liste gc.ListeGProjektil.Clear(); //Löscht Gegnerprojektile spieler.ListeSchuss.Clear(); //Löscht eigene Schüsse ListeItem.Clear(); //Leert Itemliste gc.spornRechteck(); //Lässt Gegner wieder neu erscheinen spieler.leben = 3; spielStatus = State.spielen; status = 21; for (int i = 0; i < 27; i++) //Pilz weieder komplett sichtbar machen schutz.texVisi[i] = true; MediaPlayer.Play(sound.bgrSong); sound.bewaffnet.Play(); } else if (keyState.IsKeyDown(Keys.Q)) { this.Exit(); } break; } case State.gewonnen: { status = 4; KeyboardState keyState = Keyboard.GetState(); if (keyState.IsKeyDown(Keys.J)) { //Clearen & Neustart vorbereiten gc.ListeGegner.Clear(); //Leert die Gegner Liste gc.ListeGProjektil.Clear(); //Löscht Gegnerprojektile spieler.ListeSchuss.Clear(); //Löscht eigene Schüsse ListeItem.Clear(); //Leert Itemliste gc.spornRechteck(); //Lässt Gegner wieder neu erscheinen spieler.leben = 3; spielStatus = State.spielen; status = 21; for (int i = 0; i < 27; i++) //Pilz weieder komplett sichtbar machen schutz.texVisi[i] = true; MediaPlayer.Play(sound.bgrSong); sound.bewaffnet.Play(); } else if (keyState.IsKeyDown(Keys.Q)) { this.Exit(); } break; } } base.Update(gameTime); }
//Wenn alle gegner tot starte neues level public void neuesLevel() { if (gc.ListeGegner.Count == 0) { ListeItem.Clear(); listeAnimation.Clear(); ListeItem.Clear(); foreach (Item it in ListeItem) it.isVisible = false; foreach (Animation la in listeAnimation) la.isVisible= false; gc.ListeGProjektil.Clear(); //Gegner Projektile beim Levelübergang löschen if (skipLvl2 == true && skipLvl3 == true) level = Level.Lvl2; if (skipLvl2 == false && skipLvl3 == true) level = Level.Lvl3; if (skipLvl2 == false && skipLvl3 == false) spielStatus = State.gewonnen; } }