public Duck(string name, int x, int y) { Name = name; _duckDeath = new Sprite("DuckDeath"); _duckDeath.LoadContent("DuckDeath"); _duckDive = new Sprite("DuckDive"); _duckDive.LoadContent("DuckDive"); _duck = new AnimatedSprite() { RenderBoundingBox = false, Name = name }; _duck.LoadFrameTexture("DuckFrame1"); _duck.LoadFrameTexture("DuckFrame2"); _duck.LoadFrameTexture("DuckFrame3"); _duck.Velocity = new Vector2(7, 5); _duck.Flip = false; _duck.Location = new Vector2(x, y); _duck.IsVisible = true; _duck.IsEnabled = true; _duck.AnimationType = AnimationTypeEnum.PingPong; _duck.AnimationSpeed = 5; _duck.Play(); State = DuckStateEnum.Start; SoundEffectPlayer.LoadSoundEffect("death"); SoundEffectPlayer.LoadSoundEffect("quaks"); SoundEffectPlayer.LoadSoundEffect("falling"); SoundEffectPlayer.LoadSoundEffect("flapping"); }
private void ShootDuck() { // Shoot the duck if (GetCollision()) { if (Hud.Hud.NumShotsLeft > 0) { // Post message to the score board. ScoreMessage message = new ScoreMessage() { ScoreIncrement = 10 }; Channels.PostMessage("score", message); DuckHitMessage duckHitMessage = new DuckHitMessage() { State = DuckIndicatorStateEnum.Hit }; Channels.PostMessage("duckhit", duckHitMessage); Channels.PostMessage("soundeffects", new SoundEffectMessage() { SoundEffectToPlay = "death" }); State = DuckStateEnum.Dead; } } }
public void Draw(GameTime gameTime) { switch (State) { case DuckStateEnum.Start: break; case DuckStateEnum.Fying: if (CollisionManager.IsCollision("crosshair", Name)) { _duck.Draw(gameTime, new Color(100, 100, 100, 255)); } else { _duck.Draw(gameTime, new Color(255, 255, 255, 255)); } break; case DuckStateEnum.FlyAway: if (CollisionManager.IsCollision("crosshair", Name)) { _duck.Draw(gameTime, new Color(100, 100, 100, 255)); } else { _duck.Draw(gameTime, new Color(255, 255, 255, 255)); } break; case DuckStateEnum.Dead: _deathCounter++; if (_deathCounter < 5) { _duckDeath.Draw(gameTime, new Color(255, 255, 255, 255)); } else { _duckDeath.Draw(gameTime, new Color(150, 150, 150, 255)); } if (_deathCounter >= 10) { _deathCounter = 0; _duckFlashCounter++; } if (_duckFlashCounter == 5) { State = DuckStateEnum.Dive; } break; case DuckStateEnum.Dive: _duckDive.Draw(gameTime, new Color(255, 255, 255, 255)); break; } }
public void AddImage( Image img , Color c , bool hashat , DuckStateEnum stateenum ) { DuckState state = new DuckState(); state.image = img; state.color = c; state.hashHat = hashat; state.state = stateenum; states.Add( stateenum , state ); }
public Duck(string name, int x, bool flip, float vx, float vy) { Name = name; _duckDeath = new Sprite("DuckDeath"); _duckDeath.LoadContent("DuckDeath"); _duckDive = new Sprite("DuckDive"); _duckDive.LoadContent("DuckDive"); _duck = new AnimatedSprite() { RenderBoundingBox = false, Name = name }; _duck.LoadFrameTexture("DuckFrame1"); _duck.LoadFrameTexture("DuckFrame2"); _duck.LoadFrameTexture("DuckFrame3"); if (vx > 0) { vx += DifficultySettings.CurrentDifficulty.SpeedDifference; } else { vx -= DifficultySettings.CurrentDifficulty.SpeedDifference; } if (vy > 0) { vy += DifficultySettings.CurrentDifficulty.SpeedDifference; } else { vy -= DifficultySettings.CurrentDifficulty.SpeedDifference; } _duck.Velocity = new Vector2(vx, vy); _duck.Flip = flip; _duck.Location = new Vector2(x, 900); _duck.IsVisible = true; _duck.IsEnabled = true; _duck.AnimationType = AnimationTypeEnum.PingPong; _duck.AnimationSpeed = 5; _duck.Play(); State = DuckStateEnum.Start; SoundEffectPlayer.LoadSoundEffect("death"); SoundEffectPlayer.LoadSoundEffect("quaks"); SoundEffectPlayer.LoadSoundEffect("falling"); SoundEffectPlayer.LoadSoundEffect("flapping"); }
public void Update(GameTime gameTime) { switch (State) { case DuckStateEnum.Start: break; case DuckStateEnum.Fying: _duck.Update(gameTime); _duckClock.Start(); if (!_playDuckSound) { Channels.PostMessage("soundeffects", new SoundEffectMessage() { SoundEffectToPlay = "quaks" }); Channels.PostMessage("soundeffects", new SoundEffectMessage() { SoundEffectToPlay = "flapping" }); _playDuckSound = true; } if (_duckClock.ElapsedMilliseconds > 1000) { BoundDuckOffWalls(); } if (_duckClock.ElapsedMilliseconds > 6000) { State = DuckStateEnum.FlyAway; } ShootDuck(); break; case DuckStateEnum.Dead: _duckDeath.X = _duck.X; _duckDeath.Y = _duck.Y; _duckDive.X = _duck.X; _duckDive.Y = _duck.Y; break; case DuckStateEnum.FlyAway: _duck.Update(gameTime); if (DuckOutOfBounds(_duck)) { State = DuckStateEnum.Finished; DuckHitMessage duckHitMessage = new DuckHitMessage() { State = DuckIndicatorStateEnum.Miss }; Channels.PostMessage("duckhit", duckHitMessage); } ShootDuck(); break; case DuckStateEnum.Dive: _duckDive.Update(gameTime); _duckDive.Velocity = new Vector2(0, 15); if (!_playFallingSound) { Channels.PostMessage("soundeffects", new SoundEffectMessage() { SoundEffectToPlay = "falling" }); _playFallingSound = true; } if (DuckOutOfBounds(_duckDive)) { State = DuckStateEnum.Finished; } break; case DuckStateEnum.Finished: break; } }