class CenterManager
{
        private static $_instance;

        static public function GetInstance(){
            if (!self::$_instance instanceof self) {
                self::$_instance = new self();
            }
            return self::$_instance;
        }
}

2019-08-16 19:22:30  PHP
private static function initEvents()
{
        //扫描文件夹下的所有文件
        $files = scandir(__DIR__ . '/EventHandlers');
        foreach($files as $file)
        {
            if($file != '.' && $file != '..')
            {
                include_once(__DIR__ . '/EventHandlers/' . $file);
                //调用文件的静态方法
                call_user_func(pathinfo($file, PATHINFO_FILENAME) . '::onWorkerStart');
            }
        }

}

2019-08-16 13:47:35  PHP
local c = string.sub(str,i,i)

2019-07-31 21:24:09  Lua

一、环境

cocos cocos2d-x-3.16

AndroidStudio3.41

ndk-r14b

sdk25 28 --测了这两个版本都是可以滴

二、打开项目修改ndk版本

使用AndroidStudio打开 "项目目录/frameworks/runtime-src/proj.android-studio" ,如果报ndk或jni相关错误,修改ndk版本,打开File/ProjectStructure窗口,选择SDK Location,重新设置Android NDK location的目录为ndk-r14b的目录。ndk是一个工具用来帮助android访问本地c++代码的,cocos2d-x-3.16使用ndk14版本亲测合适。

三、修改gradle中的目标abi和sdk版本

如果AndroidStudio提示更新gradle的版本,尽量选择不更新,可能会出问题。选择Project视图,眼光落在proj.android-studio目录下。打开gradle.properties,指定cpu架构和sdk版本信息

PROP_COMPILE_SDK_VERSION=25 --编译的sdk版本
PROP_MIN_SDK_VERSION=10  --运行最低的sdk版本
PROP_TARGET_SDK_VERSION=25 --最优最适合的sdk版本
PROP_APP_PLATFORM=10
PROP_APP_ABI=x86:armeabi --指定cpu架构

打开app/Application.mk,指定cup架构

APP_ABI := x86:armeabi

四、lua代码的加密和解密

加密可以在windows下使用cocos luacompile命令编译成luac脚本,可以在你的项目目录中,新建一个.bat文件,编写为:

cocos luacompile -s D:\projects\HelloLua\simulator\win32\src -d D:\projects\HelloLua\src -e -k keykey -b xixixixixixi --disable-compile
# -s指定的是原lua目录
# -d指定的是编译到的目标目录
# -e表示加密
# -k指定加密的key值
# -b指定加密的密钥

解密的话需要修改c++代码,打开frameworks/runtime-src/Classes/AppDelegate.cpp,找到applicationDidFinishLaunching方法里面的一行代码,替换为上面加密的key值和密钥

stack->setXXTEAKeyAndSign("keykey", strlen("keykey"), "xixixixixixi", strlen("xixixixixixi"));

五、打包

查看Build菜单下的子菜单,点击生成apk就行了


2019-07-04 21:38:38  Cocos-Lua
local tb = {}
tb.name = "chicai"
tb.age = 18
local jstr = json.encode(tb) --编码
local tt = json.decode(jstr) --解码

2019-07-02 15:41:04  Cocos-Lua
local xhr = cc.XMLHttpRequest:new()
xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_STRING  --返回的数据类型,可以是json等
xhr:open("GET","http://www.baidu.com")
local function onReadyStateChange()
    if xhr.readyState == 4 and xhr.status == 200 then
        print( xhr.response )
    end
    xhr:unregisterScriptHandler()
end
xhr:registerScriptHandler(onReadyStateChange)
xhr:send()  --POST时,可以通过这个发送参数 GET使用链接附带参数

2019-07-02 15:36:56  Cocos-Lua