首页 > 其他 > 详细

cocos2dx, 重新initWithSpriteFrameName与重新setTexture()+setTextureRect()区别

时间:2015-05-21 22:11:38      阅读:1139      评论:0      收藏:0      [点我收藏+]

比如我们有一个sprite是通过createWithSpriteFrameName创建的,现在我们需要为其更换贴图,有两种方法:

一种方法是再次调用createWithSpriteFrameName,即:sprite->initWithSpriteFrameName(newSpriteFrameName)。

另一种方法是通过setTexture()+setTextureRect(),即:

CCSpriteFrame*spriteFrame=CCSpriteFrameCache::sharedSpriteFrameCache()->getSpriteFrameByName(newSpriteFrameName);

sprite->setTexture(spriteFrame->getTexture());

sprite->setTextureRect(spriteFrame->getRect());

第一种方法有很强的复作用,即sprite会被恢复出厂设置,以前对它设置的如opacity等均会失效。

第二种方法才是正确的方法,仅改变sprite的贴图。

cocos2dx, 重新initWithSpriteFrameName与重新setTexture()+setTextureRect()区别

原文:http://www.cnblogs.com/wantnon/p/4520652.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!