cocos2d-x学习日志(2) --精灵类

转载请标明:转载自【小枫栏目】,博文链接:http://blog.csdn.net/my183100521/article/details/10138427

一、简介

在游戏中还有一个比较重要的元素,那就是精灵类,我们可以通过单张图片或者是贴图集的方式来生成精灵。精灵类的用法比较灵活,还有精灵批处理的方法帮助我们创建多个精灵并节约渲染效率。


二、实例

1.准备工作

我的目录资源:




利用纹理地图(texture atlas),把我们想用的图像都合并在一起。

首先我们把想要用的图像都放到一个目录里, 再用TexturePacker 的 "Add Folder"  功能把目录加进去, TexturePacker 的默认输出格式就是 cocos2d:

 


为了节省位置, 我们可以把Border padding 和Shape Padding 都设为1, 而选了 Allow rotation 可以让 TexturePacker 更为有效率的摆放图像在纹理里:

 


在键入了输出的档案名字后, 我们就可以用 Publish 把纹理输出.

接下来, 我们把输出的两个档案(我们这里的例子是animal.plist 和 animal.png) 放到 Resources 里, 就可以在程序里用 CCSpriteFrameCache 把纹理和有关资料载入:

cache->addSpriteFramesWithFile("images.plist", "images.png");
注意:记得有关资源添加到项目,不然会报错!


2.代码

在HelloWorldScene.cpp,init()内添加代码,

    //添加精灵
    CCSprite* rSprite = CCSprite::create("Role.png");
    rSprite->setPosition( ccp(size.width/2, size.height/2) );
    this->addChild(rSprite, 0);
    
    //添加纹理,批次渲染
    CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("animal.plist", "animal.png");
    CCTexture2D *texture = CCTextureCache::sharedTextureCache()->textureForKey("animal.png");
    CCSpriteBatchNode *spriteBatch = CCSpriteBatchNode::batchNodeWithTexture(texture);
    this->addChild(spriteBatch);
    
    //添加"animal.plist"对应精灵
    CCSprite *l1 = CCSprite::createWithSpriteFrameName("fish.png");
    l1->setPosition( ccp(size.width/4, size.height/2) );
    this->addChild(l1,1);


三、效果图



注:本人使用cocos2d-x 2.0.4版本

引用帖子:http://cn.cocos2d-x.org/bbs/forum.php?mod=viewthread&tid=775&extra=page%3D1


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热血枫叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值