GithubHelp home page GithubHelp logo

shujunqiao / sample_cpp_cocos2dx Goto Github PK

View Code? Open in Web Editor NEW

This project forked from anysdk/sample_cpp_cocos2dx

0.0 3.0 0.0 92.83 MB

License: MIT License

CMake 1.38% C++ 64.55% C 13.72% Python 2.36% Shell 0.22% PowerShell 0.16% Makefile 0.20% Objective-C++ 2.73% Objective-C 7.76% Java 4.95% C# 0.26% GLSL 0.43% JavaScript 0.06% Lua 1.21%

sample_cpp_cocos2dx's Introduction

Sample_CPP

简要说明: sample of cocos2d-x cpp

使用版本: cocos2d-x 3.3rc0

接入文档: http://docs.anysdk.com/CppTutorial

运行: ./cocos2d/tools/cocos2d-console/bin/cocos run -p android

###cocos2d-x c++接入anysdk简要流程: ####一:获取AnySDK Framework 到AnySDK官方网站注册登陆,然后到AnySDK Framework的下载页面( http://www.anysdk.com/downloads ) 下载完整的anysdk框架包,选择AnySDK Framework for C++进行下载

解压后如下图:

####二:拷贝anysdk framework stl库到protocols文件夹 #####protocols文件: 首先,查看hello项目的hello/proj.android/jni/Application.mk文件第一行找到stl库类型设置。 如下图:

然后,进入anysdkTest项目的frameworks/runtime-src/proj.android目录,新建protocols文件夹。根据上面查看到的stl类型,选取AnySDK_Framework_C++/protocols_c++_static库,然后将该目录下的android和include文件夹拷贝到protocols目录。 #####res文件: 将AnySDK_Framework_C++/protocols_c++_static目录下的res文件,拷贝到proj.android/res目录下,注意选择合并,避免文件覆盖。 #####放置libPluginProtocol.jar包: 在proj.android目录下新建libs文件夹,然后将AnySDK_Framework_C++/protocols_c++_static/android目录下的libPluginProtocol.jar拷贝到该目录下。 ####三:编辑 mk 文件 #####修改LOCAL_C_INCLUDES: 在LOCAL_C_INCLUDES 新增目录:protocols/android 和 protocols/include,例:

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes	\
      $(LOCAL_PATH)/../protocols/android	\
      $(LOCAL_PATH)/../protocols/include

#####新增 static lib: 例:

LOCAL_WHOLE_STATIC_LIBRARIES += PluginProtocolStatic

#####新增 modules: 例:

$(call import-module,protocols/android)

android.mk(修改之后)如图:

####四:增加NDK_MODULE_PATH 修改 build-cfg.json文件的 ndk_module_path 部分如下:

"ndk_module_path" :[
        "../cocos2d",
        "../cocos2d/cocos",
        "../cocos2d/external",
        ""
    ],

####五:添加设置javaVM代码 修改main.cpp文件(在jni下面)

#include "PluginJniHelper.h"
    
#define  LOG_TAG    "main"
#define  LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
    
using namespace cocos2d;
using namespace anysdk::framework;
    
void cocos_android_app_init (JNIEnv* env, jobject thiz) {
    LOGD("cocos_android_app_init");
    AppDelegate *pAppDelegate = new AppDelegate();
    JavaVM* vm;
    env->GetJavaVM(&vm);
    PluginJniHelper::setJavaVM(vm);
}

如图:

####六:配置AndroidManifest.xml 添加框架需要的权限

uses-permission android:name="android.permission.INTERNET"

uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"

uses-permission android:name="android.permission.ACCESS_WIFI_STATE"

uses-permission android:name="android.permission.RESTART_PACKAGES"

uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"

####七:在JAVA层初始化AnySDK Framework框架 修改项目下/proj.android/src/org/cocos2dx/cpp/AppActivity.java文件:

import com.anysdk.framework.PluginWrapper;
   
public class MainActivity extends Activity{
   protected void onCreate(Bundle savedState)
   {
      super.onCreate(savedState);
      PluginWrapper.init(this); // for plugins
   }
}

重写Activity生命周期相关方法,代码如下:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
	super.onActivityResult(requestCode, resultCode, data);
	PluginWrapper.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onResume() {
    super.onResume();
    PluginWrapper.onResume();
}
@Override
public void onPause(){
    PluginWrapper.onPause();
    super.onPause();
}
@Override
protected void onNewIntent(Intent intent) {
    PluginWrapper.onNewIntent(intent);
    super.onNewIntent(intent);
}

AppActivity.java:


接入完成,下面就可以使用了。

sample_cpp_cocos2dx's People

Contributors

hylthink avatar lixiecheng avatar

Watchers

James Cloos avatar shujun.qiao avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.