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()); }
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; }
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); }
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); }
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); } }
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)); } }
private static float easeInBack(float ratio) { float s = 1.70158f; return(AsMath.pow(ratio, 2) * ((s + 1.0f) * ratio - s)); }