Exemplo n.º 1
0
        /// <summary>
        /// initializes a CCTMXLayer with a tileset info, a layer info and a map info
        /// </summary>
        public bool initWithTilesetInfo(CCTMXTilesetInfo tilesetInfo, CCTMXLayerInfo layerInfo, CCTMXMapInfo mapInfo)
        {
            // XXX: is 35% a good estimate ?
            CCSize size = layerInfo.m_tLayerSize;
            float  totalNumberOfTiles = size.width * size.height;
            float  capacity           = totalNumberOfTiles * 0.35f + 1; // 35 percent is occupied ?

            CCTexture2D texture = null;

            if (tilesetInfo != null)
            {
                texture = CCTextureCache.sharedTextureCache().addImage(tilesetInfo.m_sSourceImage);
            }

            if (base.initWithTexture(texture, (int)capacity))
            {
                // layerInfo
                m_sLayerName  = layerInfo.m_sName;
                m_tLayerSize  = layerInfo.m_tLayerSize;
                m_pTiles      = layerInfo.m_pTiles;
                m_uMinGID     = layerInfo.m_uMinGID;
                m_uMaxGID     = layerInfo.m_uMaxGID;
                m_cOpacity    = layerInfo.m_cOpacity;
                m_pProperties = layerInfo.Properties;
                //			m_pProperties = CCStringToStringDictionary::dictionaryWithDictionary(layerInfo->getProperties());
                m_fContentScaleFactor = CCDirector.sharedDirector().ContentScaleFactor;

                // tilesetInfo
                m_pTileSet = tilesetInfo;
                //CC_SAFE_RETAIN(m_pTileSet);

                // mapInfo
                m_tMapTileSize      = mapInfo.TileSize;
                m_uLayerOrientation = (CCTMXOrientatio)mapInfo.Orientation;

                // offset (after layer orientation is set);
                CCPoint offset = this.calculateLayerOffset(layerInfo.m_tOffset);
                this.position = offset;

                m_pAtlasIndexArray = ccCArray.ccCArrayNew((int)totalNumberOfTiles);

                this.contentSizeInPixels = new CCSize(m_tLayerSize.width * m_tMapTileSize.width, m_tLayerSize.height * m_tMapTileSize.height);
                m_tMapTileSize.width    /= m_fContentScaleFactor;
                m_tMapTileSize.height   /= m_fContentScaleFactor;

                m_bUseAutomaticVertexZ = false;
                m_nVertexZvalue        = 0;
                m_fAlphaFuncValue      = 0;
                return(true);
            }
            return(false);
        }
Exemplo n.º 2
0
        public bool initWithTilesetInfo(CCTMXTilesetInfo tilesetInfo, CCTMXLayerInfo layerInfo, CCTMXMapInfo mapInfo)
        {
            CCSize      mTLayerSize = layerInfo.m_tLayerSize;
            float       single      = mTLayerSize.width * mTLayerSize.height;
            float       single1     = single * 0.35f + 1f;
            CCTexture2D cCTexture2D = null;

            if (tilesetInfo != null)
            {
                cCTexture2D = CCTextureCache.sharedTextureCache().addImage(tilesetInfo.m_sSourceImage);
            }
            if (!base.initWithTexture(cCTexture2D, (int)single1))
            {
                return(false);
            }
            this.m_sLayerName          = layerInfo.m_sName;
            this.m_tLayerSize          = layerInfo.m_tLayerSize;
            this.m_pTiles              = layerInfo.m_pTiles;
            this.m_uMinGID             = layerInfo.m_uMinGID;
            this.m_uMaxGID             = layerInfo.m_uMaxGID;
            this.m_cOpacity            = layerInfo.m_cOpacity;
            this.m_pProperties         = layerInfo.Properties;
            this.m_fContentScaleFactor = CCDirector.sharedDirector().ContentScaleFactor;
            this.m_pTileSet            = tilesetInfo;
            this.m_tMapTileSize        = mapInfo.TileSize;
            this.m_uLayerOrientation   = (CCTMXOrientatio)mapInfo.Orientation;
            this.position              = this.calculateLayerOffset(layerInfo.m_tOffset);
            this.m_pAtlasIndexArray    = ccCArray.ccCArrayNew((int)single);
            base.contentSizeInPixels   = new CCSize(this.m_tLayerSize.width * this.m_tMapTileSize.width, this.m_tLayerSize.height * this.m_tMapTileSize.height);
            CCSize mTMapTileSize = this.m_tMapTileSize;

            mTMapTileSize.width = mTMapTileSize.width / this.m_fContentScaleFactor;
            CCSize mFContentScaleFactor = this.m_tMapTileSize;

            mFContentScaleFactor.height = mFContentScaleFactor.height / this.m_fContentScaleFactor;
            this.m_bUseAutomaticVertexZ = false;
            this.m_nVertexZvalue        = 0;
            this.m_fAlphaFuncValue      = 0f;
            return(true);
        }
        /// <summary>
        /// initializes a CCTMXLayer with a tileset info, a layer info and a map info 
        /// </summary>
        public bool initWithTilesetInfo(CCTMXTilesetInfo tilesetInfo, CCTMXLayerInfo layerInfo, CCTMXMapInfo mapInfo)
        {
            // XXX: is 35% a good estimate ?
            CCSize size = layerInfo.m_tLayerSize;
            float totalNumberOfTiles = size.width * size.height;
            float capacity = totalNumberOfTiles * 0.35f + 1; // 35 percent is occupied ?

            CCTexture2D texture = null;
            if (tilesetInfo != null)
            {
                texture = CCTextureCache.sharedTextureCache().addImage(tilesetInfo.m_sSourceImage);
            }

            if (base.initWithTexture(texture, (int)capacity))
            {
                // layerInfo
                m_sLayerName = layerInfo.m_sName;
                m_tLayerSize = layerInfo.m_tLayerSize;
                m_pTiles = layerInfo.m_pTiles;
                m_uMinGID = layerInfo.m_uMinGID;
                m_uMaxGID = layerInfo.m_uMaxGID;
                m_cOpacity = layerInfo.m_cOpacity;
                m_pProperties = layerInfo.Properties;
                //			m_pProperties = CCStringToStringDictionary::dictionaryWithDictionary(layerInfo->getProperties());
                m_fContentScaleFactor = CCDirector.sharedDirector().ContentScaleFactor;

                // tilesetInfo
                m_pTileSet = tilesetInfo;
                //CC_SAFE_RETAIN(m_pTileSet);

                // mapInfo
                m_tMapTileSize = mapInfo.TileSize;
                m_uLayerOrientation = (CCTMXOrientatio)mapInfo.Orientation;

                // offset (after layer orientation is set);
                CCPoint offset = this.calculateLayerOffset(layerInfo.m_tOffset);
                this.position = offset;

                m_pAtlasIndexArray = ccCArray.ccCArrayNew((int)totalNumberOfTiles);

                this.contentSizeInPixels = new CCSize(m_tLayerSize.width * m_tMapTileSize.width, m_tLayerSize.height * m_tMapTileSize.height);
                m_tMapTileSize.width /= m_fContentScaleFactor;
                m_tMapTileSize.height /= m_fContentScaleFactor;

                m_bUseAutomaticVertexZ = false;
                m_nVertexZvalue = 0;
                m_fAlphaFuncValue = 0;
                return true;
            }
            return false;
        }