Пример #1
0
        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)));
        }
Пример #2
0
        /// <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;
        }
Пример #3
0
        /// <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;
        }
Пример #4
0
        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;
        }