Presentation is loading. Please wait.

Presentation is loading. Please wait.

Gameprogrammeren: Edit states

Similar presentations


Presentation on theme: "Gameprogrammeren: Edit states"— Presentation transcript:

1 Gameprogrammeren: Edit states
Arjan Egges Paul Bergervoet Wouter van Toll

2 Level finished Overlay

3 ‘Edit states’ Een edit state is een game state die gebruikt maakt van andere game states Voorbeelden: Game over state Level finished state

4 Plaats de overlay in het midden
LevelFinishedState class LevelFinishedState : GameObjectList { protected IGameLoopObject playingState; public LevelFinishedState() GameStateManager gm = GameEnvironment.GameStateManager; playingState = gm.GetGameState("playingState"); SpriteGameObject o = new SpriteGameObject(“spr_welldone"); o.Position = new Vector2(GameEnvironment.Screen.X, GameEnvironment.Screen.Y) / 2 - o.Center; this.Add(o); } Plaats de overlay in het midden van het scherm.

5 LevelFinishedState public override void HandleInput(InputHelper inputHelper) { if (!inputHelper.KeyPressed(Keys.Space)) return; GameEnvironment.GameStateManager.SwitchTo("playingState"); (playingState as PlayingState).NextLevel(); } public override void Update(GameTime gameTime) { playingState.Update(gameTime); public override void Draw(GameTime gameTime, SpriteBatch s) { playingState.Draw(gameTime, s); base.Draw(gameTime, s);

6 Level afgemaakt? public bool Completed { get
SpriteGameObject exitObj = this.Find("exit") as SpriteGameObject; Player player = this.Find("player") as Player; GameObjectList w = this.Find("waterdrops") as GameObjectList; if (!exitObj.CollidesWith(player)) return false; foreach (GameObject d in w.Objects) if (d.Visible) return true; } Speler heeft de uitgang nog niet bereikt Alle waterdruppels zijn nog niet verzameld

7 Update-actie van Level
public override void Update(GameTime gameTime) { TimerGameObject timer = Find("timer") as TimerGameObject; Player player = Find("player") as Player; // check if we died // check if we ran out of time // check if we won base.Update(gameTime); }

8 Update-actie van Level
// check if we died if (!player.IsAlive) timer.Running = false; // check if we ran out of time if (timer.GameOver) player.Explode(); // check if we won if (this.Completed && timer.Running) { player.LevelFinished(); }

9 public void Explode() {
if (!isAlive || finished) return; isAlive = false; exploded = true; velocity = Vector2.Zero; position.Y += 15; this.PlayAnimation("explode"); } public void LevelFinished() { finished = true; velocity.X = 0.0f; this.PlayAnimation("celebrate"); GameEnvironment.AssetManager.playSound("snd_player_won");


Download ppt "Gameprogrammeren: Edit states"

Similar presentations


Ads by Google