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); }
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); }
// Use this for initialization void Start() { Movement = IdleMovement; LaserCollider = GetComponent <BoxCollider2D>(); LaserCollider.enabled = false; LaserLine.enabled = false; StopParticle(); }
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); } }
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(); }