cocos2dx-3.0 之sprite学习:

    cocosd2dx3.0相对于之前版本改变还是比较大的。现在我们来学习一下3.0中sprite的一些用法:

sprite创建:

auto sprite = Sprite::create("Images/grossini_dance_atlas.png", Rect(x,y,85,121) ); //x,y表示图片在大图中的位置后边两参数表示长度和宽度 直接用图片初始化

auto BatchNode = SpriteBatchNode::create("Images/grossini_dance_atlas.png", 50);//首先创建以个spritebatchnode
auto sprite = Sprite::createWithTexture(BatchNode->getTexture(), Rect(x,y,85,121));//通过spritebatchnode创建
	auto cache = SpriteFrameCache::getInstance();//创建一个缓存实例(单利模式)
	cache->addSpriteFramesWithFile("animations/grossini.plist");//两种添加图片方式
	cache->addSpriteFramesWithFile("animations/grossini_gray.plist", "animations/grossini_gray.png");
	cache->addSpriteFramesWithFile("animations/grossini_blue.plist", "animations/grossini_blue.png");

	//
	// Animation using Sprite BatchNode //通过缓存初始化
	//
	_sprite1 = Sprite::createWithSpriteFrameName("grossini_dance_01.png");


退出程序调用SpriteFrameCache::getInstance()->removeUnusedSpriteFrames();
SpriteBatchNode:可以引用且仅能一个纹理,sprite可以根据该纹理创建,并且加到spritebatchnode,所有的精灵添加到SpriteBatchNode被同一个OpenGL ES绘制。如果精灵没有添加到同一个SpriteBatchNode,那么OpenGL ES会为每一个精灵创建。当你创建精灵动画时,动画改变图片调用
setDisplayFrame这个方法,这就是为什么动画必须在同一个纹理里。(翻译的testcpp可能理解有错)。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值