1.首先将需要渲染的精灵图片用zwoptex软件生成一个.plist和.png文件。
2.建一个精灵帧缓存,以便将上文中建立的.plist文件中的精灵帧存入进去。
CCSpriteFrameCache* spriteFrameCache = [CCSpriteFrameCache sharedSpriteFrameCache];
3.通过addSrpiteFrameWithFile方法从plist文件中添加精灵帧。与此同时,纹理也将会通过1中建立的png文件自动载入。
[spriteFrameCache addSpriteFrameWithFile:@"SpriteSheet.plist"]; // SpriteSheet.plist 为上文建立的plist文件的名字。
4.通过1中建立的png图片,建立一个精灵表单。
CCSptireBatchNode *batchNode = [CCSpriteBatchNode batchNodeWithFile:@"SpriteSheet.png"];
batchNode.position = CGPointZero;
[self addChild:batchNode];
现在已经有了精灵帧了,也把这些精灵帧都加到了精灵表单了,下面就可以通过这些精灵帧创建精灵了。
5.首先要从精灵帧缓存中取出相应的精灵帧。
CCSptireFrame *bgSpriteFrame = [spriteFrameCache spriteFrameByName:@"gamebg-hd.png"]; //gamebg-hd.png为plist文件中的一个精灵帧名称。
6.通过5中建立的精灵帧创建精灵。
CCSprite *bgSprite = [CCSprite spriteWithSpriteFrame:bgSpriteFrame];
bgSprite.position = ccp(winSize.width/2,winSize.height/2); //调整精灵位置。
[batchNode addChild:bgSprite]; //将新建立的精灵加到精灵表单中。
如想再建立一个精灵重复5 6即可。例如:
CCSptireFrame *plantSpriteFrame = [spriteFrameCache spriteFrameByName:@"plant.png"];
CCSprite *plantSprite = [CCSprite spriteWithSpriteFrame:plantSpriteFrame];
plantSprite.position = ccp(winSize.width/2+100,winSize.height/2+100); //调整精灵位置。
[batchNode addChild:plantSprite]; //将新建立的精灵加到精灵表单中。
总结:
建立plist文件并添加到工程中-->建立精灵帧缓存-->将plist中的精灵帧加到精灵帧缓存中-->建立精灵表单-->从精灵帧缓存中取出精灵帧-->通过取出的精灵帧建立精灵-->把新建立的精灵添加到精灵表单中。
附言:
zwoptex是一款帮助我们建立精灵的软件,使用也很方便,可以同时生成plist和png文件。这是一个付费软件,但是网上有很多破解版,可以自行下载使用。我已在资源中上传我所使用的,有需要的可以自行下载。