//methods private void Walk(Player player) { if (!isWalking) { if (direction == Directions.Up && animIdleUp != null) { anim = animIdleUp; } if (direction == Directions.Down && animIdleDown != null) { anim = animIdleDown; } if (direction == Directions.Right || direction == Directions.Left) { anim = animIdleSide; } } else { if (direction == Directions.Up && animWalkUp != null) { anim = animWalkUp; } if (direction == Directions.Down && animWalkDown != null) { anim = animWalkDown; } if (direction == Directions.Left || direction == Directions.Right) { anim = animWalkSide; } } isWalking = false; if (isFollowing) { float distance = Vector2.Distance(position, player.position); if (followRange < distance) // away from player { Vector2 movedirection = player.position - position; movedirection.Normalize(); Vector2 tempPos = position; tempPos += movedirection * speed; if (!EnemyMonster.didCollide(tempPos, radius)) { position += movedirection * speed; } else { position.Y += speed; } if (movedirection.X > movedirection.Y) { direction = Directions.Right; } if (movedirection.X < movedirection.Y) { direction = Directions.Left; } isWalking = true; } } }
//methods private void Walk() { if (!isWalking) { if (direction == Directions.Up) { anim = animIdleUp; } if (direction == Directions.Down) { anim = animIdleDown; } if (direction == Directions.Right || direction == Directions.Left) { anim = animIdleSide; } } else { if (direction == Directions.Up) { anim = animWalkUp; } if (direction == Directions.Down) { anim = animWalkDown; } if (direction == Directions.Left || direction == Directions.Right) { anim = animWalkSide; } } isWalking = false; KeyboardState mouse = Keyboard.GetState(); Vector2 tempPos = position; if (mouse.IsKeyDown(Keys.Right)) { tempPos.X += speed; if (!EnemyMonster.didCollide(tempPos, radius)) { position.X += speed; direction = Directions.Right; isWalking = true; } } if (mouse.IsKeyDown(Keys.Left)) { tempPos.X -= speed; if (!EnemyMonster.didCollide(tempPos, radius)) { position.X -= speed; direction = Directions.Left; isWalking = true; } } if (mouse.IsKeyDown(Keys.Up)) { tempPos.Y -= speed; if (!EnemyMonster.didCollide(tempPos, radius)) { position.Y -= speed; direction = Directions.Up; isWalking = true; } } if (mouse.IsKeyDown(Keys.Down)) { tempPos.Y += speed; if (!EnemyMonster.didCollide(tempPos, radius)) { position.Y += speed; direction = Directions.Down; isWalking = true; } } }