Exemple #1
0
        public override void Update(GameTime gameTime)
        {
            if (!isDead)
            {
                if (inputHandler.KeyboardHandler.IsKeyDown(Keys.Right))
                {
                    celAnimationManager.ResumeAnimation("orc_right");
                    direction = Direction.Right;

                    position.X += (speed * (float)gameTime.ElapsedGameTime.TotalSeconds);
                }
                else
                {
                    celAnimationManager.PauseAnimation("orc_right");
                }
                if (inputHandler.KeyboardHandler.IsKeyDown(Keys.Left))
                {
                    celAnimationManager.ResumeAnimation("orc_left");
                    direction   = Direction.Left;
                    position.X -= (speed * (float)gameTime.ElapsedGameTime.TotalSeconds);
                }
                else
                {
                    celAnimationManager.PauseAnimation("orc_left");
                }
                if (inputHandler.KeyboardHandler.IsKeyDown(Keys.Up))
                {
                    celAnimationManager.ResumeAnimation("orc_up");
                    direction   = Direction.Up;
                    position.Y -= (speed * (float)gameTime.ElapsedGameTime.TotalSeconds);
                }
                else
                {
                    celAnimationManager.PauseAnimation("orc_up");
                }
                if (inputHandler.KeyboardHandler.IsKeyDown(Keys.Down))
                {
                    celAnimationManager.ResumeAnimation("orc_down");
                    direction   = Direction.Down;
                    position.Y += (speed * (float)gameTime.ElapsedGameTime.TotalSeconds);
                }
                else
                {
                    celAnimationManager.PauseAnimation("orc_down");
                }

                if (inputHandler.KeyboardHandler.IsKeyDown(Keys.Space))
                {
                    atkTime     = DateTime.Now;
                    isAttacking = true;
                    switch (direction)
                    {
                    case Direction.Down:
                        celAnimationManager.ResumeAnimation("orc_slash_down");
                        break;

                    case Direction.Up:
                        celAnimationManager.ResumeAnimation("orc_slash_up");
                        break;

                    case Direction.Left:
                        celAnimationManager.ResumeAnimation("orc_slash_left");
                        break;

                    case Direction.Right:
                        celAnimationManager.ResumeAnimation("orc_slash_right");
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    atkTime     = new DateTime();
                    isAttacking = false;
                }
                if (inputHandler.KeyboardHandler.IsKeyDown(Keys.LeftShift))
                {
                    switch (direction)
                    {
                    case Direction.Down:
                        celAnimationManager.ResumeAnimation("orc_shield_down");
                        break;

                    case Direction.Up:
                        celAnimationManager.ResumeAnimation("orc_shield_up");
                        break;

                    case Direction.Left:
                        celAnimationManager.ResumeAnimation("orc_shield_left");
                        break;

                    case Direction.Right:
                        celAnimationManager.ResumeAnimation("orc_shield_right");
                        break;

                    default:
                        break;
                    }
                }
            }

            int celWidth = celAnimationManager.GetAnimationFrameWidth("orc_left");

            if (position.X > (Game.GraphicsDevice.Viewport.Width - celWidth))
            {
                position.X = (Game.GraphicsDevice.Viewport.Width - celWidth);
            }
            if (position.X < 0)
            {
                position.X = 0;
            }

            base.Update(gameTime);
        }
Exemple #2
0
        public override void Update(GameTime gameTime)
        {
            if (!hasdied)
            {
                celAnimationManager.ResumeAnimation("my_ghost");
                if (player.position.X < position.X)
                {
                    direction = Direction.Left;
                    if (!IsTouchingRight(player) && _is_swung_timer == 0)
                    {
                        life_minus_swing = false;

                        if (!IsTouchingRight(Game1.sprites))
                        {
                            position.X += -speed;
                        }
                    }

                    else
                    {
                        attacking_player += (float)gameTime.ElapsedGameTime.TotalSeconds;

                        if ((player.swinging_enemy && player.direction == Direction.Right) || _is_swung_timer > 0)
                        {
                            if (_is_swung_timer == 0)
                            {
                                x_damage_font_position = position.X;
                                y_damage_font_position = position.Y - 50f;
                            }
                            _is_swung_timer += (float)gameTime.ElapsedGameTime.TotalSeconds;
                            if (_is_swung_timer < 0.5)
                            {
                                position.X += knockOut_speed;
                            }
                            else
                            {
                                _is_swung_timer = 0;
                            }
                            if (!life_minus_swing)
                            {
                                damage_to_life   = 10;
                                life            -= damage_to_life;
                                life_minus_swing = true;
                            }
                        }

                        else if (attacking_player > 0.5)
                        {
                            attacking_player      = 0;
                            player.damage_to_life = 2;
                            player.life          -= player.damage_to_life;
                            player.player_hit     = true;
                        }
                    }
                }
                else if (player.position.X > position.X)
                {
                    direction = Direction.Right;
                    if (!IsTouchingLeft(player) && _is_swung_timer == 0)
                    {
                        life_minus_swing = false;

                        if (!IsTouchingLeft(Game1.sprites))
                        {
                            position.X += speed;
                        }
                    }
                    else
                    {
                        attacking_player += (float)gameTime.ElapsedGameTime.TotalSeconds;
                        if ((player.swinging_enemy && player.direction == Direction.Left) || _is_swung_timer > 0)
                        {
                            if (_is_swung_timer == 0)
                            {
                                x_damage_font_position = position.X;
                                y_damage_font_position = position.Y - 50f;
                            }
                            _is_swung_timer += (float)gameTime.ElapsedGameTime.TotalSeconds;
                            if (_is_swung_timer < 0.5)
                            {
                                position.X += -knockOut_speed;
                            }
                            else
                            {
                                _is_swung_timer = 0;
                            }

                            if (!life_minus_swing)
                            {
                                damage_to_life   = 10;
                                life            -= damage_to_life;
                                life_minus_swing = true;
                            }
                        }
                        else if (attacking_player > 0.5 && !player.player_hit)
                        {
                            attacking_player      = 0;
                            player.damage_to_life = 2;
                            player.life          -= player.damage_to_life;
                            player.player_hit     = true;
                        }
                    }
                }
                if (player.position.Y < position.Y)
                {
                    if (!IsTouchingBottom(Game1.sprites))
                    {
                        position.Y += -speed;
                    }
                }
                else if (player.position.Y > position.Y)
                {
                    if (!IsTouchingTop(Game1.sprites))
                    {
                        position.Y += +speed;
                    }
                }

                if (IsTouchingBottom(player) || IsTouchingLeft(player) ||
                    IsTouchingRight(player) || IsTouchingTop(player) || _is_slamed_timer > 0)
                {
                    if (player.slaming_enemy && player.slaming_enemy)
                    {
                        if (_is_slamed_timer == 0)
                        {
                            x_damage_font_position = position.X;
                            y_damage_font_position = position.Y - 50f;
                        }
                        _is_slamed_timer += (float)gameTime.ElapsedGameTime.TotalSeconds;
                        if (_is_slamed_timer < 0.2)
                        {
                            if (player.position.X < position.X)
                            {
                                position.X += knockOut_speed;
                            }
                            else
                            {
                                position.X -= knockOut_speed;
                            }

                            if (player.position.Y < position.Y)
                            {
                                position.Y += knockOut_speed;
                            }
                            else
                            {
                                position.Y -= knockOut_speed;
                            }
                        }
                        else
                        {
                            _is_slamed_timer = 0;
                        }

                        if (!life_minus_swing_slam)
                        {
                            damage_to_life        = 6;
                            life                 -= damage_to_life;
                            life_minus_swing_slam = true;
                        }
                    }
                    else
                    {
                        life_minus_swing_slam = false;
                    }
                }
            }

            if (life <= 0)
            {
                hasdied          = true;
                death_on_screen += (float)gameTime.ElapsedGameTime.TotalSeconds;
            }



            base.Update(gameTime);
        }
Exemple #3
0
        // float swing_time = 0;

        public override void Update(GameTime gameTime)
        {
            if (!hasdied)
            {
                if (player_hit)
                {
                    if (player_hit_timer == 0)
                    {
                        x_damage_font_position = position.X;
                        y_damage_font_position = position.Y;
                    }
                    player_hit_timer += (float)gameTime.ElapsedGameTime.TotalSeconds;

                    if (player_hit_timer >= 1)
                    {
                        player_hit_timer = 0;
                        player_hit       = false;
                    }
                }

                if (inputHandler.KeyboardHandler.IsKeyDown(Keys.Right))
                {
                    slaming_enemy  = false;
                    swinging_enemy = false;
                    celAnimationManager.SetanimationFrame("Ramona_Swing", 0);
                    celAnimationManager.SetanimationFrame("Ramona_Slam", 0);

                    celAnimationManager.ResumeAnimation("Ramona_run");
                    currentAnimation    = "Ramona_run";
                    direction           = Direction.Right;
                    position.X         += speed;
                    Game1.map_position += speed / 100;


                    if (position.X > (Game1.ScreenWidth / 1.25f))
                    {
                        position.X = Game1.ScreenWidth / 1.25f;
                    }
                }

                else if (inputHandler.KeyboardHandler.IsKeyDown(Keys.Left))
                {
                    slaming_enemy  = false;
                    swinging_enemy = false;
                    celAnimationManager.SetanimationFrame("Ramona_Swing", 0);
                    celAnimationManager.SetanimationFrame("Ramona_Slam", 0);

                    celAnimationManager.ResumeAnimation("Ramona_run");
                    currentAnimation    = "Ramona_run";
                    direction           = Direction.Left;
                    position.X         -= speed;
                    Game1.map_position -= speed / 100;
                }
                else
                {
                    celAnimationManager.PauseAnimation("Ramona_run");
                }

                if (inputHandler.KeyboardHandler.IsKeyDown(Keys.Up))
                {
                    slaming_enemy  = false;
                    swinging_enemy = false;
                    celAnimationManager.SetanimationFrame("Ramona_Swing", 0);
                    celAnimationManager.SetanimationFrame("Ramona_Slam", 0);

                    celAnimationManager.ResumeAnimation("Ramona_run");
                    currentAnimation = "Ramona_run";

                    position.Y -= speed;

                    if (position.Y < 320)
                    {
                        position.Y = 320;
                    }
                }

                else if (inputHandler.KeyboardHandler.IsKeyDown(Keys.Down))
                {
                    slaming_enemy  = false;
                    swinging_enemy = false;
                    celAnimationManager.SetanimationFrame("Ramona_Swing", 0);
                    celAnimationManager.SetanimationFrame("Ramona_Slam", 0);

                    celAnimationManager.ResumeAnimation("Ramona_run");
                    currentAnimation = "Ramona_run";

                    position.Y += speed;

                    if (position.Y > 520)
                    {
                        position.Y = 520;
                    }
                }


                if (inputHandler.KeyboardHandler.WasKeyPressed(Keys.Enter))
                {
                    slaming_enemy = false;
                    celAnimationManager.SetanimationFrame("Ramona_Swing", 0);
                    celAnimationManager.SetanimationFrame("Ramona_Slam", 0);

                    celAnimationManager.ResumeAnimation("Ramona_Swing");
                    currentAnimation = "Ramona_Swing";
                    //swinging_enemy = false;
                }

                else if ((currentAnimation == "Ramona_Swing") && celAnimationManager.GetanimationFrame("Ramona_Swing") >= 3)
                {
                    swinging_enemy = true;
                }

                if ((currentAnimation == "Ramona_Swing") && celAnimationManager.GetanimationFrame("Ramona_Swing") == 7)
                {
                    swinging_enemy = false;

                    celAnimationManager.PauseAnimation("Ramona_Swing");
                    celAnimationManager.SetanimationFrame("Ramona_Swing", 0);
                    currentAnimation = "Ramona_run";
                }
                if (inputHandler.KeyboardHandler.WasKeyPressed(Keys.Space))
                {
                    celAnimationManager.SetanimationFrame("Ramona_Swing", 0);
                    celAnimationManager.SetanimationFrame("Ramona_Slam", 0);
                    swinging_enemy = false;

                    celAnimationManager.ResumeAnimation("Ramona_Slam");
                    currentAnimation = "Ramona_Slam";
                }
                else if ((currentAnimation == "Ramona_Slam") && celAnimationManager.GetanimationFrame("Ramona_Slam") >= 5)
                {
                    slaming_enemy = true;
                }

                if ((currentAnimation == "Ramona_Slam") && celAnimationManager.GetanimationFrame("Ramona_Slam") == 7)
                {
                    slaming_enemy = false;

                    celAnimationManager.PauseAnimation("Ramona_Slam");
                    celAnimationManager.SetanimationFrame("Ramona_Slam", 0);
                    currentAnimation = "Ramona_run";
                }



                if (position.X > (Game.GraphicsDevice.Viewport.Width - frameWidth))
                {
                    position.X = (Game.GraphicsDevice.Viewport.Width - frameWidth);
                }
                if (position.X < 0)
                {
                    position.X = 0;
                }
            }
            if (life <= 0)
            {
                life    = 0;
                hasdied = true;
                player_death_on_screen += (float)gameTime.ElapsedGameTime.TotalSeconds;
            }

            base.Update(gameTime);
        }