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); }
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); }
// 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); }