/// <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); }
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; }