【发布时间】:2019-09-04 19:05:01
【问题描述】:
我使用生成 Xcode 或 Android 项目的引擎制作应用程序,并且我主要将 Xcode 用于我的项目。不过我希望第一次使用 Android Studio。
在生成的 Android Studio 项目中,我有一个 PTServicesBridge 类,我在其中添加了自己的代码以实现引擎之外的其他功能。 (在这种情况下,我需要将分数变量向上调整为 1)。
PTServicesBridge 类:
public class PTServicesBridge
public static PTServicesBridge instance() {
if (sInstance == null)
sInstance = new PTServicesBridge();
return sInstance;
}
public static void initBridge(Cocos2dxActivity activity, String appId){
//some initialisations
}
//...
public static void adjustScoreUp(){
//I need to call a function from here <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}
}
该项目包含一个main.cpp 文件,其中包含我需要调用的方法。
Main.cpp
#include "screens/PTPScoreController.h"
using namespace cocos2d;
extern "C"
{
jint JNI_OnLoad(JavaVM *vm, void *reserved){
JniHelper::setJavaVM(vm);
return JNI_VERSION_1_4;
}
//...
void adjustScoreUpNow{
PTPScoreController::scores().points.addCurrent(1); //This method <<<<<<<<<<
}
如何从PTServicesBridge 类中调用adjustScoreUpNow?
编辑: 引擎支持告诉我这样做。我希望有一个简单的解决方案可以从 Java 类调用 .cpp 方法。
【问题讨论】:
-
感谢您的链接。我不认为这是重复的,因为
main.cpp已经被使用了。所以我只需要知道如何从 java 类调用该文件中的方法。感谢您发帖。 -
页面顶部链接问题的答案描述了如何使用 JNI 来做你想做的事。