您好,欢迎访问一九零五行业门户网

第五节cocos2dx的jni部分

继续上文分析,这节来分析cocos2dx 的jni 部分: 目录为: cocos2d-x-2.1.4\cocos2dx\platform\android\jni dpijni.cpp dpijni.h imejni.cpp imejni.h java_org_cocos2dx_lib_cocos2dxaccelerometer.cpp java_org_cocos2dx_lib_cocos2dxbitmap.cpp java_org_c
继续上文分析,这节来分析cocos2dx 的jni 部分:
目录为:
cocos2d-x-2.1.4\cocos2dx\platform\android\jni
dpijni.cpp
dpijni.h
imejni.cpp
imejni.h
java_org_cocos2dx_lib_cocos2dxaccelerometer.cpp
java_org_cocos2dx_lib_cocos2dxbitmap.cpp
java_org_cocos2dx_lib_cocos2dxbitmap.h
java_org_cocos2dx_lib_cocos2dxhelper.cpp
java_org_cocos2dx_lib_cocos2dxhelper.h
java_org_cocos2dx_lib_cocos2dxrenderer.cpp
jnihelper.cpp
jnihelper.h
touchesjni.cpp
dpijni.cpp
获取屏幕dpi 的一个接口。
imejni.cpp
获取上层的输入设备,是否打开和关闭输入键盘
java_org_cocos2dx_lib_cocos2dxaccelerometer.cpp
单向java 调用,传递给c++,pdirector->getaccelerometer()->update(x, y, z, timestamp);
java_org_cocos2dx_lib_cocos2dxbitmap.cpp
创建位图使用
java_org_cocos2dx_lib_cocos2dxhelper.cpp
帮助类,双向,java 调用c++ 和c++调用java
java_org_cocos2dx_lib_cocos2dxrenderer.cpp
渲染器,单向,java 传递给c++
jnihelper.cpp
协助类,帮助接口
touchesjni.cpp 触屏消息传递过程
参照一个为:
jniexport void jnicall
java_org_cocos2dx_lib_cocos2dxrenderer_nativetouchesbegin(jnienv * env, jobject thiz, jint id,
jfloat x, jfloat y) {
cocos2d::ccdirector::shareddirector()->getopenglview()->handletouchesbegin(1,
&id, &x, &y);
}
传递给cocos2d-x-2.1.4\cocos2dx\platform\android cceglview.cpp 里面,这个类继承了
cceglviewprotocol,这个里面可以看到处理过程
void cceglviewprotocol::handletouchesbegin(int num, int ids[], float xs[], float ys[])
这个过程就完成了。
这里ccdirector.cpp 里面设置了触屏解析器
m_pobopenglview->settouchdelegate(m_ptouchdispatcher);
随后cceglviewprotocol::handletouchesbegin 里面调用的
m_pdelegate->touchesbegan(&set, null);
便会走到这里。
这一节还是讲解jni 的本地代码与java 代码之间的沟通过程,只有理解了这些概念,才能在
随后的开发过程游刃有余。
这一节就到这里,分析完毕。
其它类似信息

推荐信息