コード例 #1
0
ファイル: Enemy.cs プロジェクト: Crocsx/DodgeLaser
    IEnumerator Exit()
    {
        StopParticle();
        LaserCollider.enabled = false;
        LaserLine.enabled     = false;

        float timer = 0;

        isAlive  = false;
        Movement = IdleMovement;

        Vector3 startPosRight = LaserRight.transform.position;
        float   sizeRight     = LaserRight.GetComponent <SpriteRenderer>().size.x / 2;

        Vector3 startPosLeft = LaserLeft.transform.position;
        float   sizeLeft     = LaserLeft.GetComponent <SpriteRenderer>().size.x / 2;

        while (timer < ExitTimer)
        {
            LaserLeft.transform.position  = Vector3.Lerp(startPosLeft, startPosLeft - new Vector3(sizeLeft, 0, 0), timer / ExitTimer);
            LaserRight.transform.position = Vector3.Lerp(startPosRight, startPosRight - new Vector3(-sizeRight, 0, 0), timer / ExitTimer);

            timer += TimeManager.instance.deltaTime;
            yield return(null);
        }

        LaserLeft.transform.position  = startPosLeft - new Vector3(sizeLeft, 0, 0);
        LaserRight.transform.position = startPosRight - new Vector3(-sizeRight, 0, 0);

        spawner.OnEnemyDeath(this);
    }
コード例 #2
0
ファイル: cCur.cs プロジェクト: rosco-y/NewCube
    public int Move(eMovement movement)
    {
        // dieFaces.cCur.Move()
        switch (movement)
        {
        case Down:
            // make sure and do these assignments in order!
            // (to avoid reassigning freshly assigned variables: a = b; c = a;
            _top    = _facing;
            _facing = Bottom;
            _bottom = 7 - _top;
            initializeSides();
            break;

        case Up:
            int ttop = _top;
            _top    = 7 - _facing;
            _bottom = _facing;
            _facing = ttop;
            initializeSides();
            break;

        case Left:
            //int side = _sides[0];
            //int facingIndex = _sides.IndexOf(_facing);
            //if (facingIndex < (NUMSIDES))
            //{
            //    _facing = _sides[facingIndex];
            //}
            //else
            //    _facing = _sides[0];

            int facingIndex = _sides.IndexOf(_facing);
            rotate(_sides, eMovement.Right);
            // rotate
            _facing = _sides[facingIndex];
            break;

        case Right:
            //int last = _sides.Count - 1;
            //int side = _sides[last];
            facingIndex = _sides.IndexOf(_facing);
            //_sides.RemoveAt(last);
            //_sides.Insert(0, side);
            rotate(_sides, eMovement.Left);
            _facing = _sides[facingIndex];
            //facingIndex = _sides.IndexOf(_facing);
            //rotate(_sides, eMovement.Left);
            //// rotate
            //_facing = _sides[facingIndex];
            break;

        default:
            Console.Write($"Unhandled case: {movement.ToString()}");
            break;
        }

        return(_facing);
    }
コード例 #3
0
ファイル: Enemy.cs プロジェクト: Crocsx/DodgeLaser
    // Use this for initialization
    void Start()
    {
        Movement = IdleMovement;

        LaserCollider         = GetComponent <BoxCollider2D>();
        LaserCollider.enabled = false;
        LaserLine.enabled     = false;
        StopParticle();
    }
コード例 #4
0
ファイル: cCur.cs プロジェクト: rosco-y/NewCube
 void rotate(List <int> ls, eMovement movement)
 {
     if (movement == eMovement.Right)
     {
         int len       = ls.Count - 1;
         int lastValue = ls[len];
         ls.RemoveAt(len);
         ls.Insert(0, lastValue);
     }
     else if (movement == eMovement.Left)
     {
         int firstValue = ls[0];
         ls.RemoveAt(0);
         ls.Add(firstValue);
     }
 }
コード例 #5
0
ファイル: Enemy.cs プロジェクト: Crocsx/DodgeLaser
    IEnumerator WarmUp()
    {
        float timer = 0;

        LaserLine.SetPosition(0, LaserLeft.GetChild(0).transform.position);
        LaserLine.SetPosition(1, LaserRight.GetChild(0).transform.position);

        while (timer < FireWarmUpTimer)
        {
            LaserLine.startWidth = LaserLine.startWidth = Mathf.Lerp(LASER_MIN_WIDTH, LASER_MAX_WIDTH, timer / FireWarmUpTimer);
            LaserLine.endWidth   = LaserLine.startWidth = Mathf.Lerp(LASER_MIN_WIDTH, LASER_MAX_WIDTH, timer / FireWarmUpTimer);
            timer += TimeManager.instance.deltaTime;
            yield return(null);
        }

        LaserLine.startWidth = LaserLine.endWidth = LASER_MAX_WIDTH;

        Movement = GetComponent <EnemyType>().Movement;
        isAlive  = true;
        LaserCollider.enabled = true;
        LaserLine.enabled     = true;
        StartParticle();
    }