cocos2dx 3.3 异步加载纹理】的更多相关文章

这里以3d场景加载为例,2d情况类似. 先同步加载模型数据和尺寸缩小了100倍的贴图,创建mesh.然后异步加载所有精细纹理并每加载完一个就替换一个,并进入场景. 如此做法的效果是当刚进入场景时看到的是贴图非常糙的场景,然后逐渐贴换为精细贴图.(就像放大谷歌地图时的情况). 下图左边是 刚进入场景时,右边是 精细纹理异步加载完成后:    具体实现如下: bool ClevelMapLayer::init(){ loadAllModelData(); loadAllRoughTex(); cre…
原文地址:  http://www.cnblogs.com/linchaolong/p/4033118.html 前言   问题:最近项目中需要做一个loading个界面,界面中间有一个角色人物走动的动画,在显示这个loading界面的时候加载资源,项目是用cocos2d-x lua实现的,界面做出来后发现在加载资源的时候界面会卡住. 原因: 因为使用的不是异步加载,而且cocos2d-x没有绑定异步加载资源的api到lua中,其实在lua中实现不了异步. 想通过在lua中启动一个线程去加载资源…
最近在做一个棋牌项目,脚本语言用的lua,登录需要使用微信登录,用户头像用微信账户的头像,微信接口返回的头像是一个url,那么遇到的一个问题就是如何在lua中异步加载这个头像,先在引擎源码里找了下可能会提供这个功能的地方,发现好像没有提供类似功能,那么只能自己动手写.所以我在ImageView这个类里面添加了一个成员方法,其实可以不写在ImageView里,而且我觉得非必需情况下还是不要修改引擎源码的好,因为如果源码改动比较多的话,将来引擎版本升级会比较麻烦.我写在ImageView里纯粹是想偷…
原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/15334159 cocos2d-x中和Android,Windows都 一样,如果在主线程中处理一些耗时操作,那么主线程就会出现阻塞现象,表现在界面上就是卡住,未响应等情况.为了避免这种情况的出现,我们需要在后台开辟 工作线程进行数据的处理,再采用消息传递或者其他形式来通知主线程进行UI变化.最常见的情况就是游戏进入前的loading. 1.图片的异步加载 在多线程和同步的第…
如果没有预先加载图片,则可以通过addImageAsync()函数实现异步加载,该函数通过创建一个加载线程来加载图片,并且在主线程中通过调用回调函数来读取该图片资源纹理.其主要过程如下: 1.创建线程,用于后台加载图片 2.将对于需要加载的图片放入图片资源队列中 3.callback函数设定,用于将加载完成的图片转为纹理,等待使用其调用是由CCTimer::update调用的. 4.addImageAsyncCallBack函数在处理完纹理转换,还会调用addImageAsync传入的SEL_C…
如果没有预先加载图片,则可以通过addImageAsync()函数实现异步加载,该函数通过创建一个加载线程来加载图片,并且在主线程中通过调用回调函数来读取该图片资源纹理.其主要过程如下: 1.创建线程,用于后台加载图片 2.将对于需要加载的图片放入图片资源队列中 3.callback函数设定,用于将加载完成的图片转为纹理,等待使用其调用是由CCTimer::update调用的. 4.addImageAsyncCallBack函数在处理完纹理转换,还会调用addImageAsync传入的SEL_C…
在lua中,cocos2dx 建立的栈只能被一个线程(主线程)访问,如果在c++建立子线程,然后通过c++调用lua回调函数实现异步加载就会报错. 如果试图通过c++子线程直接实现加载资源,返回一个布尔值或者number类型通知lua实现回调,过程是不会显示问题,但c++开辟的子线程加载的 资源文件的内存地址,跟lua开辟的主线程加载资源文件的内存地址不一样,虽然已经加载,图片等资源信息已经存在代码内存中,但是主线程还是访问不到 资源内存,所以子线程加载的图片new 成Sprite都是黑色的.…
http://blog.csdn.net/w20175357/article/details/23546985 1.先说说addImageAsync()异步加载图片的问题 做游戏的时候现在资源的比较大,所有我们必然会有一个loading界面,而我在找写loading界面的方法的时候,发现了2种方法.       一种是自己创建一个线程,再在这个线程里面加载资源,不过由于openGL的限制,只能在主线程里面绘制UI,不过有的人也想出了其他的方法,就是先只缓存,再在主线程里面绘制.这里有这方面的教程…
TexturePacker是纹理资源打包工具,支持Cocos2dx的游戏资源打包. 如果用过的同学可以直接看下面的资源的异步加载处理 首先为什么用TexturePacker? 1,节省图片资源实际大小 2,减少我们游戏中大量资源带来的内存负荷 3,方便游戏对纹理资源的内存管理 游戏开发到后期,我们或许都会遇到的瓶颈就是需要对游戏包进行“瘦身”和内存优化.那么使用TexturePacker 就能达到我们的目的: 我们以一组技能特效图片来举例,进行TexturePacker的图片打包,然后在程序中使…
一.说明     异步加载就是把消耗程序时间比较大的加载操作放到其他线程中,待加载完毕后通过回调函数的方式通知主线程.   addImageAsync函数实现(Cocos2dx 3.3) Link: http://codepad.org/UuNcXMqq    [ raw code | fork ]     void TextureCache::addImageAsync(const std::string &path, const std::function<void(Texture2D*…