• quick cocos2d x 手机(Android端)启动过程学习


    简要学习下quick cocos2d x 在安卓端启动的过程。
    首先需要了解一点:quick cocos2d x是依托于Android的activity和GLSurfaceView(继承自SurfaceView)的环境来显示quick层的游戏界面。

    (1)首先quick类的android游戏从AndroidManifest.xml文件指定的activity(假设AC)启动。

    (2)AC继承父类的Cocos2dxActivity。

    (3)调用静态初始化块,加载cocos2dx的动态库、也就是一些C++的方法。因为后面会通过Java调用native的C++方法,运行Cocos2dx。

    (4)启动程序,执行AC的onCreate()函数,调用super.onCreate()函数(也就是Cocos2dxActivity的onCreate()函数)

    (5)进入父类的onCreate函数后,一个重要的组件被初始化了。那就是mGLSurfaceView。注意父类的声明周期函数接口。

    如:

    在Activity的onResume() 和onPause()接口,主要是针对mGLSurfaceView的绘制控制。

    这样在游戏进入后台时,调用activity的生命周期函数,暂停游戏绘制等等相关处理。

    (6)mGLSurfaceView设置Render渲染。

    执行this.mGLSurfaceView.setCocos2dxRenderer(new Cocos2dxRenderer());来设置渲染render。

    在Cocos2dxRenderer里面,调用如下代码:

    @Override
    public void onSurfaceCreated(final GL10 pGL10, final EGLConfig pEGLConfig) {
      Cocos2dxRenderer.nativeInit(this.mScreenWidth, this.mScreenHeight);
      this.mLastTickInNanoSeconds = System.nanoTime();
      isReady = true;
    }

    上面红色标注的代码将会C++方法,进入cocos2dx的入口,至此游戏即将启动。

    请看下面的nativeInit方法干了些什么:

    注意上面的AppDelegate类,那里初始化了AppDelegate。
    AppDelegate代码主要是设置脚本引擎,导演CCDirector的参数设置,游戏前后台切换时的处理。
    通过脚本引擎的设置,就可以在游戏中执行Lua脚本。通过Lua脚本来运行游戏。
    Lua通过tolua++,可以调用C++的代码,也就是Cocos2dx的代码,使用游戏引擎Cocos2dx了。
    至此游戏运行!
    至于AppDelegate,需要另外开一篇Blog了

  • 相关阅读:
    NUnit使用笔记2-GetStarted
    NUnit使用笔记1-下载与安装
    2014年的总结
    2015-02-10
    2015-02-03
    一些书
    SQLServer 安装提示需要重启计算机的解决方案
    ArcSDE
    plsql更改用户登录密码
    Oracle创建表空间和用户
  • 原文地址:https://www.cnblogs.com/vokie/p/3818076.html
Copyright © 2020-2023  润新知