private CCSprite updateTileForGID(int gid, CCPoint pos) { CCRect rect = m_pTileSet.rectForGID(gid); rect = new CCRect(rect.origin.x / m_fContentScaleFactor, rect.origin.y / m_fContentScaleFactor, rect.size.width / m_fContentScaleFactor, rect.size.height / m_fContentScaleFactor); int z = (int)(pos.x + pos.y * m_tLayerSize.width); if (m_pReusedTile == null) { m_pReusedTile = new CCSprite(); m_pReusedTile.initWithBatchNode(this, rect); } else { m_pReusedTile = new CCSprite(); m_pReusedTile.initWithBatchNode(this, rect); } m_pReusedTile.positionInPixels = positionAt(pos); m_pReusedTile.vertexZ = (float)vertexZForPos(pos); m_pReusedTile.anchorPoint = new CCPoint(0, 0); m_pReusedTile.Opacity = m_cOpacity; // get atlas index int indexForZ = atlasIndexForExistantZ(z); m_pReusedTile.atlasIndex = indexForZ; m_pReusedTile.dirty = true; m_pReusedTile.updateTransform(); m_pTiles[z] = gid; return(m_pReusedTile); }
protected void addQuadFromSprite(CCSprite sprite, int index) { while ((index >= this.m_pobTextureAtlas.Capacity) || (this.m_pobTextureAtlas.Capacity == this.m_pobTextureAtlas.TotalQuads)) { this.increaseAtlasCapacity(); } sprite.useBatchNode(this); sprite.atlasIndex = index; ccV3F_C4B_T2F_Quad quad = sprite.quad; this.m_pobTextureAtlas.insertQuad(quad, index); sprite.dirty = true; sprite.updateTransform(); }