Cocos-X创建JS工程,编译Android .apk包,加载nanolink.so文件,创建一个实时对战游戏
Cocos-js工程,创建一个实时对战游戏
文章主要介绍怎么创建cocos-js工程,并介绍使用Cocos-js工程,接入天梯游戏统计的实时对战协议 NanoLink
天梯的NanoLink实时对战协议目前好像支持主流游戏开发引擎,具体产品问题自己访问 天梯游戏统计 查看吧(据说NanoLink目前需要内部推荐才能使用,可以直接联系他们客服, QQ群:308944898)。
下面请看重点:
第一步、下载Cocos-js工程包,执行.py文件安装,并创建一个新的js工程。
官方文档介绍:https://github.com/cocos2d/cocos2d-js
下载工程包后执行下面命令:
- $ cd cocos2d-js
- $ ./setup.py
- $ source FILE_TO_SAVE_SYSTEM_VARIABLE
- $ cocos new NanoLink1 -l js -d /Data/Items/study/Cocos/Cocos-js
- $ cd /Data/Items/study/Cocos/Cocos-js/NanoLink1
注:使用上面命令行安装,默认将会把cocos命令添加到环境变量。
- $ cat ~/.bash_profile
- ...
- #Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x
- export COCOS_CONSOLE_ROOT=/Applications/cocos2d-x-3.14/tools/cocos2d-console/bin
- export PATH=$COCOS_CONSOLE_ROOT:$PATH
- # Add environment variable COCOS_X_ROOT for cocos2d-x
- export COCOS_X_ROOT=/Applications
- export PATH=$COCOS_X_ROOT:$PATH
- # Add environment variable COCOS_TEMPLATES_ROOT for cocos2d-x
- export COCOS_TEMPLATES_ROOT=/Applications/cocos2d-x-3.14/templates
- export PATH=$COCOS_TEMPLATES_ROOT:$PATH
- ...
第二步、根据Cocos要求配置ant, android SDK, ndk 到环境变量即可。(以下是个人目录,更具自己情况修改)
- $ vi ~/.bash_profile
- ...
- export ANT_ROOT=/Users/xiaowujun/ant/bin
- export PATH=$ANT_ROOT:$PATH
- export ANDROID_SDK_ROOT=/Users/xiaowujun/Library/Android/sdk
- export PATH=$ANDROID_SDK_ROOT:$PATH
- export NDK_ROOT=/Users/xiaowujun/Library/Android/sdk/ndk-bundle
- export PATH=$NDK_ROOT:$PATH
- ...
第三步、运行 cocos run 命令,编译安装到 Android手机
$ cocos run -p android
参数:
-p 指定平台。 如 ios|mac|android|win32|web
-j 指定编译时启动几个线程。 我通常用 -j 4
–ap 指定 Android/adk/platforms/ 中的 版本, –ap android-19$ cocos run -p android --ap android-19 -j 4
第四步、运行编译时,需要加载nanolink.so文件,需要对js工程的代码做简单修改。以天梯游戏统计的实时对战协议 NanoLink 为例介绍
4.1 首先要得到天梯实时对战SDK,这个联系他们客服就可以,不多介绍
4.2 修改 Android.mk 文件,直接上代码,红色 标注的是需要添加的。(MarkDown代码块中的文本不能变颜色???)
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE:=libnanolink
- LOCAL_SRC_FILES:=../../../nanolink1/lib/android/$(TARGET_ARCH_ABI)/libnanolink.so
- include $(PREBUILT_SHARED_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := cocos2djs_shared
- LOCAL_MODULE_FILENAME := libcocos2djs
- ifeq ($(USE_ARM_MODE),1)
- LOCAL_ARM_MODE := arm
- endif
- LOCAL_SRC_FILES := hellojavascript/main.cpp \
- ../../Classes/AppDelegate.cpp \
- ../../../nanolink1/CocosPlugin/NanoLink_js.cpp
- LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \
- $(LOCAL_PATH)/../../../nanolink1/include \
- $(LOCAL_PATH)/../../../nanolink1/CocosPlugin
- LOCAL_STATIC_LIBRARIES := cocos2d_js_static
- LOCAL_EXPORT_CFLAGS := -DCOCOS2D_DEBUG=2 -DCOCOS2D_JAVASCRIPT
- LOCAL_SHARED_LIBRARIES := libnanolink
- include $(BUILD_SHARED_LIBRARY)
4.3 然后修改 AppDelegate.cpp 文件<
4000
/h3>
- #include "NanoLink_js.h"
- ...
- ...
- ...
- bool AppDelegate::applicationDidFinishLaunching()
- {
- ...
- ScriptingCore::getInstance()->addRegisterCallback(NanoLink_js::registerJSFunctions);
- sc->start();
- sc->runScript("script/jsb_boot.js");
- ...
- }
**注意,需要在 sc->start(); 前添加
ScriptingCore::getInstance()->addRegisterCallback(NanoLink_js::registerJSFunctions);**
大功告成!再运行第三步,编译到手机上即可。
原文地址:https://www.geek-share.com/detail/2701840751.html