public static CCShatteredTiles3D actionWithRange(int nRange, bool bShatterZ, ccGridSize gridSize, float duration)
        {
            CCShatteredTiles3D cCShatteredTiles3D = new CCShatteredTiles3D();

            if (cCShatteredTiles3D.initWithRange(nRange, bShatterZ, gridSize, duration))
            {
                return(cCShatteredTiles3D);
            }
            return(null);
        }
        /// <summary>
        /// creates the action with a range, whether of not to shatter Z vertices, a grid size and duration
        /// </summary>
        public static CCShatteredTiles3D actionWithRange(int nRange, bool bShatterZ, ccGridSize gridSize, float duration)
        {
            CCShatteredTiles3D pAction = new CCShatteredTiles3D();

            if (pAction.initWithRange(nRange, bShatterZ, gridSize, duration))
            {
                return pAction;
            }

            return null;
        }
        public override CCObject copyWithZone(CCZone pZone)
        {
            CCShatteredTiles3D cCShatteredTiles3D = null;

            if (pZone == null || pZone.m_pCopyObject == null)
            {
                cCShatteredTiles3D = new CCShatteredTiles3D();
                pZone = new CCZone(cCShatteredTiles3D);
            }
            else
            {
                cCShatteredTiles3D = (CCShatteredTiles3D)pZone.m_pCopyObject;
            }
            base.copyWithZone(pZone);
            cCShatteredTiles3D.initWithRange(this.m_nRandrange, this.m_bShatterZ, this.m_sGridSize, this.m_fDuration);
            return(cCShatteredTiles3D);
        }
        /// <summary>
        /// creates the action with a range, whether of not to shatter Z vertices, a grid size and duration
        /// </summary>
        /// <param name="nRange"></param>
        /// <param name="bShatterZ"></param>
        /// <param name="gridSize"></param>
        /// <param name="duration"></param>
        /// <returns></returns>
        public static CCShatteredTiles3D actionWithRange(int nRange, bool bShatterZ, ccGridSize gridSize, float duration)
        {
            CCShatteredTiles3D pAction = new CCShatteredTiles3D();

            if (pAction != null)
            {
                if (pAction.initWithRange(nRange, bShatterZ, gridSize, duration))
                {
                    //pAction->autorelease();
                }
                else
                {
                    //CC_SAFE_RELEASE_NULL(pAction);
                }
            }

            return pAction;
        }
        public override CCObject copyWithZone(CCZone pZone)
        {
            CCZone pNewZone = null;
            CCShatteredTiles3D pCopy = null;
            if (pZone != null && pZone.m_pCopyObject != null)
            {
                pCopy = (CCShatteredTiles3D)(pZone.m_pCopyObject);
            }
            else
            {
                pCopy = new CCShatteredTiles3D();
                pZone = pNewZone = new CCZone(pCopy);
            }

            //copy super class's member
            base.copyWithZone(pZone);

            pCopy.initWithRange(m_nRandrange, m_bShatterZ, m_sGridSize, m_fDuration);

            //CC_SAFE_DELETE(pNewZone);
            pNewZone = null;
            return pCopy;
        }
        public override CCObject copyWithZone(CCZone pZone)
        {
            CCZone             pNewZone = null;
            CCShatteredTiles3D pCopy    = null;

            if (pZone != null && pZone.m_pCopyObject != null)
            {
                pCopy = (CCShatteredTiles3D)(pZone.m_pCopyObject);
            }
            else
            {
                pCopy = new CCShatteredTiles3D();
                pZone = pNewZone = new CCZone(pCopy);
            }

            //copy super class's member
            base.copyWithZone(pZone);

            pCopy.initWithRange(m_nRandrange, m_bShatterZ, m_sGridSize, m_fDuration);

            //CC_SAFE_DELETE(pNewZone);
            pNewZone = null;
            return(pCopy);
        }