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