예제 #1
0
    IEnumerator OneShotShake(float amount, float speed, float damping, float time)
    {
        float      startingTime = time, startingAmount = amount;
        ShakeLayer l = new ShakeLayer(amount, speed, damping);

        shakeLayers.Add(l);
        while (l.amount > 0)
        {
            yield return(0);

            time    -= Time.deltaTime;
            l.amount = startingAmount * (time / startingTime);
        }
        //Wait to clear
        l.amount = 0;
        while (l.lastPosition != Vector2.zero)
        {
            yield return(0);
        }
        shakeLayers.Remove(l);
    }
예제 #2
0
    IEnumerator CannonShake(ShipRevamped s)
    {
        while (s.cannon.charge == 0)
        {
            yield return(0);                             //Wait for input
        }
        ShakeLayer l = new ShakeLayer(cannonShake.amount, cannonShake.speed, cannonShake.damping);

        shakeLayers.Add(l);
        while (s.cannon.charge > 0 && s != null)
        {
            yield return(0);
        }

        //Wait to clear
        l.amount = 0;
        while (l.lastPosition != Vector2.zero)
        {
            yield return(0);
        }
        shakeLayers.Remove(l);
    }