博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2d-x载入图以及后前台切换
阅读量:5062 次
发布时间:2019-06-12

本文共 1346 字,大约阅读时间需要 4 分钟。

最近在用cocos2d-x引擎,因为使用的贴图较多,所以就想到了载入图,可是老衲以前可是没做过游戏的娃啊,网上资料太少,如何是好,垂首顿足,只好自己摸索。

关于纹理的载入,其实,

CCTextureCache::sharedTextureCache()->addImage("图片名");

 使用过一次此函数,再以后还要用到此图片名的时候,引擎就不会再载入纹理了啊,直接就从CCTextureCache中提取

于是,我们就新建一个Scene,在里面开一个线程或者什么的用来载入资源:有些音乐文件比较大,如果不提前载入在播放的时候会有顿卡,

于是,我们就用CocosDenshion::SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(音乐文件名);

最好先在载入图的时候先预先载入一下,这样后面,顿卡的情况会有所解决。

当然,非常常用的动画,我们还可以用CCAnimationCache::sharedAnimationCache()->addAnimation(XXX,XXX)提前载入。

后面要用的时候再调用CCAnimationCache::sharedAnimationCache()->animationByName("动画名")调出来使用。

综上,其实载入图中载入的内容自己也要有所控制,载入的多了,程序初始内存占得太大,载入的太少,对后面的优化效果没有太大的体现,根据自己所需进行决定。

--------------------------------------------------分割线----------------------------------------------------

下面开始讲后前台的切换,恩恩,读者读到这里肯定会觉得好奇怪啊竟然2个风牛马不相及的东西合在一个文章里。。。其实,不然,本文其实还是讲内存的载入和释放啦

老衲觉得:在移动设备上的程序切换到后台的时候,某些系统版本(尤其是安X)感觉内存不足的时候,就会释放了我们的资源,导致我们在切换回前台的时候崩溃,于是,在切换到前台的时候,我们还是提前再载入一遍所需的贴图比较好,在win32下,在程序切换回前台时候AppDelegate文件里的applicationWillEnterForeground方法(IOS上是啥?IOS的网上可以搜到,不同平台各自把代码贴之)会被调用,在里面写写载入的,笔者懒人,直接就做了个切换回来的场景。。

CCScene * pSc = CSwitchLoadScene::scene(); CCDirector::sharedDirector()->pushScene(pSc); CCDirector::sharedDirector()->resume();

然后你在载入图按你所在关卡载入完纹理以后就果断调用

CCDirector::sharedDirector()->popScene();

弹出就可。写了好一阵子,老衲累了,还是休息去吧

转载于:https://www.cnblogs.com/huangxinfj/archive/2011/12/19/2293667.html

你可能感兴趣的文章
语义web基础知识学习
查看>>
hexo个人博客添加宠物/鼠标点击效果/博客管理
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
关于WPF的2000件事 02--WPF界面是如何渲染的?
查看>>
单元测试、、、
查看>>
SVN使用教程总结
查看>>
JS 浏览器对象
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
虚拟中没有eth0
查看>>
Unity 3D游戏开发学习路线(方法篇)
查看>>
BZOJ2049[Sdoi2008]Cave 洞穴勘测(LCT模板)
查看>>
vuex插件
查看>>
2011年12月09日
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
合并单元格
查看>>
swift-初探webView与JS交互
查看>>
IOS-图片操作集合
查看>>
Android bitmap图片处理
查看>>
Android应用程序进程启动过程的源代码分析
查看>>