cocos2d-x载入图以及后前台切换

最近在用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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值