private void processTap(AsTouch touch)
        {
            AsTouch            nearbyTap = null;
            float              minSqDist = MULTITAP_DISTANCE * MULTITAP_DISTANCE;
            AsVector <AsTouch> __taps_   = mLastTaps;

            if (__taps_ != null)
            {
                foreach (AsTouch tap in __taps_)
                {
                    float sqDist = AsMath.pow(tap.getGlobalX() - touch.getGlobalX(), 2) + AsMath.pow(tap.getGlobalY() - touch.getGlobalY(), 2);
                    if (sqDist <= minSqDist)
                    {
                        nearbyTap = tap;
                        break;
                    }
                }
            }
            if (nearbyTap != null)
            {
                touch.setTapCount(nearbyTap.getTapCount() + 1);
                mLastTaps.splice(mLastTaps.indexOf(nearbyTap), (uint)(1));
            }
            else
            {
                touch.setTapCount(1);
            }
            mLastTaps.push(touch.clone());
        }
Exemple #2
0
        public AsAtfData(AsByteArray data)
        {
            String signature = AsString.fromCharCode((As_AS_REST)(data.getOwnProperty(0)), data.getOwnProperty(1), data.getOwnProperty(2));

            if (signature != "ATF")
            {
                throw new AsArgumentError("Invalid ATF data");
            }
            switch (data.getOwnProperty(6))
            {
            case 0:
            case 1:
                mFormat = AsContext3DTextureFormat.BGRA;
                break;

            case 2:
            case 3:
                mFormat = AsContext3DTextureFormat.COMPRESSED;
                break;

            case 4:
            case 5:
                mFormat = "compressedAlpha";
                break;

            default:
                throw new AsError("Invalid ATF format");
            }
            mWidth       = (int)(AsMath.pow(2, (float)(data.getOwnProperty(7))));
            mHeight      = (int)(AsMath.pow(2, (float)(data.getOwnProperty(8))));
            mNumTextures = (int)(data.getOwnProperty(9));
            mData        = data;
        }
Exemple #3
0
        private static float easeOutBounce(float ratio)
        {
            float s = 7.5625f;
            float p = 2.75f;
            float l = 0;

            if (ratio < (1.0f / p))
            {
                l = s * AsMath.pow(ratio, 2);
            }
            else
            {
                if (ratio < (2.0f / p))
                {
                    ratio = ratio - 1.5f / p;
                    l     = s * AsMath.pow(ratio, 2) + 0.75f;
                }
                else
                {
                    if (ratio < 2.5f / p)
                    {
                        ratio = ratio - 2.25f / p;
                        l     = s * AsMath.pow(ratio, 2) + 0.9375f;
                    }
                    else
                    {
                        ratio = ratio - 2.625f / p;
                        l     = s * AsMath.pow(ratio, 2) + 0.984375f;
                    }
                }
            }
            return(l);
        }
Exemple #4
0
        private static float easeOutBack(float ratio)
        {
            float invRatio = ratio - 1.0f;
            float s        = 1.70158f;

            return(AsMath.pow(invRatio, 2) * ((s + 1.0f) * invRatio + s) + 1.0f);
        }
Exemple #5
0
 private static float easeOutElastic(float ratio)
 {
     if (ratio == 0 || ratio == 1)
     {
         return(ratio);
     }
     else
     {
         float p = 0.3f;
         float s = p / 4.0f;
         return(AsMath.pow(2.0f, -10.0f * ratio) * AsMath.sin((ratio - s) * (2.0f * AsMath.PI) / p) + 1);
     }
 }
Exemple #6
0
 private static float easeInElastic(float ratio)
 {
     if (ratio == 0 || ratio == 1)
     {
         return(ratio);
     }
     else
     {
         float p        = 0.3f;
         float s        = p / 4.0f;
         float invRatio = ratio - 1;
         return(-1.0f * AsMath.pow(2.0f, 10.0f * invRatio) * AsMath.sin((invRatio - s) * (2.0f * AsMath.PI) / p));
     }
 }
Exemple #7
0
        private static float easeInBack(float ratio)
        {
            float s = 1.70158f;

            return(AsMath.pow(ratio, 2) * ((s + 1.0f) * ratio - s));
        }