public override bool Play() { if (mPlayTime > mSpeedTime) { return(false); } mColor.a = 1 - mPlayTime / mSpeedTime; float nn = mPlayTime / mSpeedTime; if (!mIsDir) { mColor.a = 1 - mColor.a; nn = 1 - nn; } mColor.a *= mColor.a; for (int y = 0; y < mFms.maxY; y++) { FMySubSprite fms = mFms.getFMySunSprite(0, y); for (int x = 0; x < mFms.maxX; x++) { fms.TransRelativePos(x, y, mDirList[x * mFms.maxY + y] * nn, new Vector3(mColor.a, mColor.a, 1)); fms.TransRelativeColor(x, y, mColor); } } mFms.UpdateMesh(); return(true); }
public FMySubSprite Transpos(int x, int y, Vector3 pos, Vector3 s) { FMySubSprite fms = getFMySunSprite(x, y); fms.TransRelativePos(x, y, pos, s); return(fms); }
public override bool Play() { if (mPlayTime > mSpeedTime) { return(false); } int curPlayId = (int)(mFms.maxY * mPlayTime / (mSpeedTime - mFlyTime)); int yy = mFms.maxY; int xx = mFms.maxX; for (int y = 0; y < yy; y++) { if (mIsDir) { if (curPlayId < y) { break; } } else { if (curPlayId < mFms.maxY - y) { continue; } } float tt = mCurTimes[y] + Time.deltaTime; mCurTimes[y] = tt; FMySubSprite fms = mFms.getFMySunSprite(0, y); if (tt > mFlyTime + 0.1f) { continue; } if (tt > mFlyTime) { tt = mFlyTime; } mColor.a = 1 - tt / mFlyTime; float nn = tt / mFlyTime; if (!mIsDir) { mColor.a = 1 - mColor.a; nn = 1 - nn; } mColor.a *= mColor.a; for (int x = 0; x < xx; x++) { fms.TransRelativePos(x, y, mDirList[x * mFms.maxY + y] * nn, new Vector3(mColor.a, mColor.a, 1)); fms.TransRelativeColor(x, y, mColor); } } mFms.UpdateMesh(); return(true); }