NDK ANT SDK ECLIPSE 都先配置好
.../proj.android/jni/Android.mk 文件里里面找以下文本。并且添加一些自己的C++类。。只需要加CPP就行
LOCAL_SRC_FILES := hellolua/main.cpp \
../../Classes/AppDelegate.cpp
mac 系统下 vim .bash_profile 命令 确认以下NDK是否全局设置
如:export NDK_ROOT=/Users/mac/ccc/developer/code/AndroidNDK
Eclipse 导入pro.android 文件
并且导入cocos2dx的lib库
cocos2d-x-2-2.2/cocos2dx/platform/android/java/src/org 文件里面的东西
copy到自己项目的pro.android/src 目录下
编译C++类
进入 pro.android/ 目录
sh build_native.sh
编译成功以后 到Eclipse得Assets文件夹里面复制粘贴所有游戏的资源
安卓不能设置固定30帧。所以需要手动改些代码 把下面的方法复制进去。然后调用以下
找一下以下代码替换并且调用onDrawtest方法
//Cocos2dxRenderer.nativeRender();
onDrawTest(gl);替换
private long renderingElapsedTime;
public void onDrawTest(final GL10 gl){
/*
* FPS controlling algorithm is not accurate, and it will slow down FPS
* on some devices. So comment FPS controlling code.
*/
try {
if (renderingElapsedTime * NANOSECONDSPERMICROSECOND < Cocos2dxRenderer.sAnimationInterval) {
Thread.sleep((Cocos2dxRenderer.sAnimationInterval - renderingElapsedTime * NANOSECONDSPERMICROSECOND) / NANOSECONDSPERMICROSECOND);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
// Get the timestamp when rendering started
long renderingStartedTimestamp = System.currentTimeMillis();
// should render a frame when onDrawFrame() is called or there is a
// "ghost"
Cocos2dxRenderer.nativeRender();
// Calculate the elapsed time during rendering
renderingElapsedTime = (System.currentTimeMillis() - renderingStartedTimestamp);
}