cocos2dx 3.x for lua "异步加载"实现过程

在lua中,cocos2dx 建立的栈只能被一个线程(主线程)访问,如果在c++建立子线程,然后通过c++调用lua回调函数实现异步加载就会报错。

如果试图通过c++子线程直接实现加载资源,返回一个布尔值或者number类型通知lua实现回调,过程是不会显示问题,但c++开辟的子线程加载的

资源文件的内存地址,跟lua开辟的主线程加载资源文件的内存地址不一样,虽然已经加载,图片等资源信息已经存在代码内存中,但是主线程还是访问不到

资源内存,所以子线程加载的图片new 成Sprite都是黑色的。

所以lua通过异步加载是实现不了的,只能通过协同程序实现实现类似异步加载的效果,就是(加载一点,进度条增加一点),

代码地址如下链接:https://github.com/caolan/async

原文地址:https://www.cnblogs.com/HemJohn/p/4661357.html