public override void OnEnter() { base.OnEnter(); CCNode target = GetChildByTag(EffectAdvanceScene.kTagBackground); // To reuse a grid the grid size and the grid type must be the same. // in this case: // ShakyTiles is TiledGrid3D and it's size is (15,10) // Shuffletiles is TiledGrid3D and it's size is (15,10) // TurnOfftiles is TiledGrid3D and it's size is (15,10) CCActionInterval shaky = new CCShakyTiles3D(4, false, new CCGridSize(15, 10), 5); CCActionInterval shuffle = new CCShuffleTiles(0, new CCGridSize(15, 10), 3); CCActionInterval turnoff = new CCTurnOffTiles(0, new CCGridSize(15, 10), 3); CCFiniteTimeAction turnon = turnoff.Reverse(); // reuse 2 times: // 1 for shuffle // 2 for turn off // turnon tiles will use a new grid CCFiniteTimeAction reuse = new CCReuseGrid(2); CCActionInterval delay = new CCDelayTime (1); // id orbit = [OrbitCamera::actionWithDuration:5 radius:1 deltaRadius:2 angleZ:0 deltaAngleZ:180 angleX:0 deltaAngleX:-90]; // id orbit_back = [orbit reverse]; // // [target runAction: [RepeatForever::actionWithAction: [Sequence actions: orbit, orbit_back, nil]]]; target.RunAction((CCSequence.FromActions(shaky, delay, reuse, shuffle, (CCFiniteTimeAction) delay.Copy(), turnoff, turnon))); }
/// <summary> /// creates the action with a range, whether or not to shake Z vertices, a grid size, and duration /// </summary> public static CCShakyTiles3D actionWithRange(int nRange, bool bShakeZ, ccGridSize gridSize, float duration) { CCShakyTiles3D pAction = new CCShakyTiles3D(); if (pAction.initWithRange(nRange, bShakeZ, gridSize, duration)) { return pAction; } return null; }
/// <summary> /// creates the action with a range, whether or not to shake Z vertices, a grid size, and duration /// </summary> /// <param name="nRange"></param> /// <param name="bShakeZ"></param> /// <param name="gridSize"></param> /// <param name="duration"></param> /// <returns></returns> public static CCShakyTiles3D actionWithRange(int nRange, bool bShakeZ, ccGridSize gridSize, float duration) { CCShakyTiles3D pAction = new CCShakyTiles3D(); if (pAction != null) { if (pAction.initWithRange(nRange, bShakeZ, gridSize, duration)) { //pAction->autorelease(); } else { //CC_SAFE_RELEASE_NULL(pAction); } } return pAction; }
public override CCObject copyWithZone(CCZone pZone) { CCZone pNewZone = null; CCShakyTiles3D pCopy = null; if (pZone != null && pZone.m_pCopyObject != null) { //in case of being called at sub class pCopy = (CCShakyTiles3D)(pZone.m_pCopyObject); } else { pCopy = new CCShakyTiles3D(); pZone = pNewZone = new CCZone(pCopy); } base.copyWithZone(pZone); pCopy.initWithRange(m_nRandrange, m_bShakeZ, m_sGridSize, Duration); //CC_SAFE_DELETE(pNewZone); pNewZone = null; return pCopy; }