Exemple #1
0
 protected void FlipIfNeeded()
 {
     if ((player.MovementVector.x > 0 && !player.IsFacingRight) || (player.MovementVector.x < 0 && player.IsFacingRight))
     {
         player.Flip();
     }
 }
Exemple #2
0
        protected void LookAtNearestEnemy(List <GameObject> enemies)
        {
            if (enemies.Count < 1)
            {
                return;
            }

            float minDistance       = DirectionAndDistanceCalculator.CalculateDistance(player.transform.Get2DPosition(), enemies[0].transform.Get2DPosition());
            int   nearestEnemyIndex = 0;

            for (int i = 1; i < enemies.Count; i++)
            {
                if (DirectionAndDistanceCalculator.CalculateDistance(player.transform.Get2DPosition(), enemies[i].transform.Get2DPosition()) < minDistance)
                {
                    minDistance       = DirectionAndDistanceCalculator.CalculateDistance(player.transform.Get2DPosition(), enemies[i].transform.Get2DPosition());
                    nearestEnemyIndex = i;
                }
            }

            Vector2 enemyPos = enemies[nearestEnemyIndex].transform.Get2DPosition();

            if ((player.transform.Get2DPosition().IsAtLeftOf(enemyPos) && !player.IsFacingRight) || (!player.transform.Get2DPosition().IsAtLeftOf(enemyPos) && player.IsFacingRight))
            {
                player.Flip();
            }
        }