Cocos2d-x 3.0变动很大,包括启动的方式,我看了下对android的启动总结如下:
Java方面:
AppActivity继承Cocos2dxActivity
Cocos2dxActivity的onCreate函数中加载本地.so
加载.so的时候会统一到javaactivity.cpp里面寻找JNI_OnLoad等本地接口,来运行本地文件
其中Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit会cocos2d::Application::getInstance()->run();来执行游戏开始。
C++方面:
main.cpp中只负责创建Application实例,从而在上面cocos2d::Application::getInstance()->run();的时候可以运行
AppDelegate 继承 Application
在Application中的run函数中执行applicationDidFinishLaunching
之前2.版本的时候是直接在main.cpp里面实现javaactivity.cpp的内容,3.0后统一封装到javaactivity.cpp里面了。
其他平台还是在main.cpp里面实现的
现在的疑问是怎么call到Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit的??
今天也是好奇看了下,不对的地方请大家指正!
Cocos2d-x 3.0的启动流程,布布扣,bubuko.com
时间: 2024-11-05 02:39:56