public override void Draw(GameTime gameTime, SpriteBatch spriteBatch) { var color = Color.White; if (_isHovering) { color = HoverColor; } if (IsFlipped.Equals(true)) { spriteBatch.Draw(_texture, destinationRectangle: Rectangle, color: color, effects: SpriteEffects.FlipHorizontally); } else { spriteBatch.Draw(_texture, Rectangle, color); } if (!string.IsNullOrEmpty(Text)) { var x = (_font.MeasureString(Text).X / 2); var y = (_font.MeasureString(Text).Y / 2); Vector2 origin = new Vector2(x, y); spriteBatch.DrawString(_font, Text, new Vector2(Rectangle.X + (Rectangle.Width - Rectangle.Width / 2), Rectangle.Y + (Rectangle.Height - Rectangle.Height / 2)), PenColor, 0, origin, Scale, SpriteEffects.None, 1); } }
public void CombatInput(KeyboardState keyboardState) { var mouseState = Mouse.GetState(); if (PreviousKeyboardState.IsKeyDown(Keys.X) && keyboardState.IsKeyUp(Keys.X)) { IsAttacking = true; Sprite.PlayAnimation(Spr_Punch); Console.WriteLine($"Punch!"); } else if (PreviousKeyboardState.IsKeyDown(Keys.Z) && keyboardState.IsKeyUp(Keys.Z)) { /* * IsAttacking = true; * IsUsingWeapon = true; * WeaponIsThrown = true; * Sprite.PlayAnimation(Spr_Punch); * HandleWeaponAnimations(1); * Console.WriteLine($"Swing!"); */ IsAttacking = true; Sprite.PlayAnimation(Spr_Kick); Console.WriteLine($"Kick!"); } else if (PreviousKeyboardState.IsKeyDown(Keys.C) && keyboardState.IsKeyUp(Keys.C)) { IsAttacking = true; Sprite.PlayAnimation(Spr_Uppercut); Console.WriteLine($"Uppercut!"); } else { CurrentWeapon.Sprite.PlayAnimation(CurrentWeapon.Spr_Idle); } if (IsAttacking.Equals(true)) { Sprite.Animation.IsStill = false; Sprite.Animation.IsLooping = false; foreach (var ent in CurrentMapState.NPCs) { if (Hitbox.Intersects(ent.Hitbox) && ent.IsDamaged.Equals(false)) { if (IsFlipped.Equals(false)) { // facing left if (ent.Position.X < Position.X) { // player is facing entity ent.TakeDamage(); } } else { // facing right if (ent.Position.X > Position.X) { // player is facing entity ent.TakeDamage(); } } } } } PreviousMouseState = mouseState; PreviousKeyboardState = keyboardState; }