本篇简单的介绍cocos2dx 中c++和java的交互(以弹窗为列子)
1:这里我将自己写的java代码作为一个java lib让主项目引用。
创建步骤是.android create lib-project + 选项+参数如:
.android create lib-project -n testjava -k com.liu -p /Users/wupc/MyPorj/test1 -t 3
(alias .android="$MYBIN/android-sdk-macosx/tools/android")
在主项目的project.properties配置文件中引用
android.library.reference.2=shared
2:c++文件介绍
a:shared.h
#pragma once
#include <string>
#include <functional>
typedef std::function<void()> ButCallBack;点击回调函数类型
namespace Shared {
std::string getDeviceID();
void show_Alart(std::string title, std::string msg, std::string butname, ButCallBack normal);
void show_Alart(std::string title, std::string msg, std::string but1_name ,ButCallBack yes, std::string but2_name, ButCallBack no);
}
b:shared.cpp
#include "Shared.h"
#include "platform/android/jni/JniHelper.h"
#include <string>
#include <deque>
#include "jai_cocos2dx.h"
using namespace cocos2d;
namespace Shared {
static std::deque<ButCallBack> butCallInfo;回调消息队列
void show_Alart(std::string title, std::string msg, std::string butName, ButCallBack normal)
{
butCallInfo.push_back(normal);//添加点击回调