Cocos2d-x之CCSpriteFrameCache 通过帧的方式加载一张大图


原文地址:http://blog.linguofeng.com/archive/2012/10/16/cocos2d-x-CCSpriteFrameCache.html


配合plist文件加载一张大图片中的某个区域

.plist 格式

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

   <key>texture</key>

   <dict>

       <key>width</key>

       <integer>图片的宽度</integer>

       <key>height</key>

       <integer>图片的高度</integer>

       </dict>

           <key>frames</key>

           <dict>

                 <key>每帧的键值,使用spriteFrameByName获取</key>

                 <dict>

                       <key>x</key>

                       <integer>X坐标</integer>

                       <key>y</key>

                       <integer>Y</integer>

                       <key>width</key>

                       <integer></integer>

                       <key>height</key>

                       <integer></integer>

                       <key>offsetX</key>

                       <real>X坐标偏移</real>

                       <key>offsetY</key>

                       <real>Y坐标偏移</real>

                       <key>originalWidth</key>

                       <integer>原宽</integer>

                       <key>originalHeight</key>

                       <integer>原高</integer>

                   </dict>

               </dict>

       </dict>

</plist>

使用CCSpriteFrameCache载入plist与图片

CCSpriteFrameCache* cache =CCSpriteFrameCache::sharedSpriteFrameCache();

cache->addSpriteFramesWithFile("plist文件","图片");

CCSprite::spriteWithSpriteFrame(cache->spriteFrameByName("plist中定义的key的键值"));

CCSprite::spriteWithSpriteFrameName("plist中定义的key的键值");// 直接也可以// 使用完以后记得清空释放内存

CCSpriteFrameCache::sharedSpriteFrameCache()->removeUnusedSpriteFrames();// 根据plist清空对应的图片

CCSpriteFrameCache::sharedSpriteFrameCache()->removeSpriteFramesFromFile("plist文件");


你可能感兴趣的:(cocos2d-x,帧的大图)