コード例 #1
0
    protected void ChangeEnemyLocked(bool right)
    {
        List <e_EnemyAI> enemies       = new List <e_EnemyAI>(GetEnemiesOnScreen(LockRange, AC.whatIsEnemy));
        List <e_EnemyAI> sortedEnemies = new List <e_EnemyAI>();

        while (enemies.Count > 0)
        {
            float     distFromleft = Mathf.Infinity;
            e_EnemyAI nearest      = null;
            for (int i = 0; i < enemies.Count; i++)
            {
                float dist;
                if ((dist = Cam.WorldToScreenPoint(enemies[i].Body.position).x) < distFromleft)
                {
                    nearest      = enemies[i];
                    distFromleft = dist;
                }
            }
            sortedEnemies.Add(nearest);
            enemies.Remove(nearest);
        }

        int index = sortedEnemies.IndexOf(EnemyLocked);

        index       = (int)Utilities.AddWithLimit(index, right ? 1 : -1, 0, sortedEnemies.Count - 1, false);
        EnemyLocked = sortedEnemies[index];
    }
コード例 #2
0
 public void Unlock()
 {
     EnemyLocked = null;
     IsLocked    = false;
     PostProcess.SetLockPP(false);
 }
コード例 #3
0
 void Lock(e_EnemyAI enemy)
 {
     EnemyLocked = enemy;
     IsLocked    = true;
     PostProcess.SetLockPP(true);
 }