Beispiel #1
0
        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");
        }
Beispiel #2
0
        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;
                }
            }
        }
Beispiel #3
0
        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;
            }
        }
Beispiel #4
0
        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 );
        }
Beispiel #5
0
        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");
        }
Beispiel #6
0
        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;
            }
        }