大佬教程收集整理的这篇文章主要介绍了Cocos2d-x优化中纹理优化,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::geTinstance()->getVisibleSize(); Vec2 origin = Director::geTinstance()->getVisibLeorigin(); auto closeItem = MenuItemImage::create( "CloseNormal.png","CloseSELEcted.png",CC_CALLBACK_1(HelloWorld::menuCloseCallBACk,this)); closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2,origin.y + closeItem->getContentSize().height/2)); auto menu = Menu::create(closeItem,null); menu->setPosition(Vec2::ZERO); this->addChild(menu,1); _labelLoading = Label::createWithTTF ("loading...","fonts/Marker Felt.ttf",35); _labelPercent = Label::createWithTTF ("0%%",35); _labelLoading->setPosition(Vec2(visibleSize.width / 2,visibleSize.height / 2 - 20)); _labelPercent->setPosition(Vec2(visibleSize.width / 2,visibleSize.height / 2 + 20)); this->addChild(_labelLoading); this->addChild(_labelPercent); _numberOfLoadedSprites = 0; _imageOffset = 0; auto sharedFileUtils = FileUtils::geTinstance(); std::string fullPathForFilename = sharedFileUtils->fullPathForFilename("ImageMetaData.plist"); ① ValueVector vec = FileUtils::geTinstance()->getValueVectorFromFile(fullPathForFileName); ② _numberOfSprites = vec.size(); ③ //加载纹理 for( auto& e : veC) ④ { auto row = e.asValueMap(); auto filename = "icons/" + row.at("filename").asString(); Director::geTinstance()->getTextureCache()->addImageAsync(filename,CC_CALLBACK_1(HelloWorld::loadingCallBACk,this)); ⑤ } return true; } void HelloWorld::loadingCallBACk(Texture2D *texturE) ⑥ { ++_numberOfLoadedSprites; __String* str = __String::createWithFormat("%d%%",(int)(((float)_numberOfLoadedSprites / _numberOfSprites) * 100)); ⑦ _labelPercent->setString(str->getCString()); ⑧ Size visibleSize = Director::geTinstance()->getVisibleSize(); int i = ++_imageOffset * 60; auto sprite = Sprite::createWithTexture(texturE); ⑨ sprite->setAnchorPoint(Vec2(0,0)); addChild(sprite,-1); sprite->setPosition(Vec2( i % (int)visibleSize.width,(i / (int)visibleSize.width) * 60)); if (_numberOfLoadedSprites == _numberOfSprites) ⑩ { _numberOfLoadedSprites = 0; } }
<?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"> <array> <Dict> <key>filename</key> <String>01-refresh.png</String> </Dict> <Dict> <key>filename</key> <String>02-redo.png</String> </Dict> <Dict> <key>filename</key> <String>03-loopBACk.png</String> </Dict> <Dict> <key>filename</key> <String>04-squiggle.png</String> </Dict> … … </array> </plist>
第⑨行代码auto sprite = Sprite::createWithTexture(texturE)是通过纹理对象texture创建精灵对象。第⑩行代码if (_numberOfLoadedSprites == _numberOfSprites)是判断是否完成任务,_numberOfLoadedSprites是已经加装的图片数,_numberOfSprites是要加装的全部图片数。
《Cocos2d-x实战 C++卷》现已上线,各大商店均已开售:
京东:http://item.jd.com/11584534.html
亚马逊:http://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%98-C-%E5%8D%B7-%E5%85%B3%E4%B8%9C%E5%8D%87/dp/B00PTYWTLU
当当:http://product.dangdang.com/23606265.html
互动出版网:http://product.china-pub.com/3770734
《Cocos2d-x实战 C++卷》源码及样章下载地址:
源码下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1
样章下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1
以上是大佬教程为你收集整理的Cocos2d-x优化中纹理优化全部内容,希望文章能够帮你解决Cocos2d-x优化中纹理优化所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。