美文网首页
2019-01-10

2019-01-10

作者: garyxuan1992 | 来源:发表于2019-01-10 15:37 被阅读0次

    cocos2dx-lua工程设置启动参数

    一、C++层获取exe启动参数,然后让lua引擎执行参数字符串

    在AppDelegate文件的applicationDidFinishLaunching()方法中添加如下代码(写在executeScriptFile("main.lua")之前即可):

    #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)

    std::string s = std::string("__launch_args = [[");

    bool bisSkipFisrt = false;

    bool bisFirst = true;

    for (int i = 0; i < __argc; ++i)

    {

    if (bisSkipFisrt){

    wstring ws(__wargv[i]);

    string _s;

    _s.assign(ws.begin(), ws.end());

    if (!bisFirst)

    s.append(",");

    s.append(_s);

    if (bisFirst) {

    bisFirst = false;

    }

    }

    if (!bisSkipFisrt){

    bisSkipFisrt = true;

    }

    }

    s.append("]]");

    engine->executeString(s.c_str());

    #endif

    二、在lua层获取第一步设置的启动参数

    lua引擎执行__launch_args后是一个全局的变量在lua层可以直接获取到;定义一个方法,将原始的参数字符串转化为表

    function GT.getWin32LaunchArgs()

        local t = {}

        if __launch_args then

            print("__launch_args = ", __launch_args)

            local t_args = string.split(__launch_args, ",")

            for i=1,#t_args,2 do

                t[t_args[i]] = t_args[i+1]

            end

        end

        return t

    end

    原始参数如下:

    三、如何设置exe启动参数

    方法一:创建一个exe文件的快捷方式,右键属性在目标后面添加参数,key前面带一个横杠字符,可添加多个空格隔开即可。

    lua层打印:

    方法二:创建bat文件启动exe文件,可以创建多个bat文件每个里面设置不同的参数

    bat文件内容

    set DIR=%~dp0

    %windir%\system32\cmd.exe /c start runtime\win32\SimpleGame.exe -autologin 0 -username garyxuan1994

    添加了2个参数autologin username ,值分别是0和garyxuan1994,可根据自身需求添加

    如果想一次启动多个客户端,则可以新建一个bat文件,调用其他bat,文件内容如下(文件名根据实际名称):

    call _run1.bat

    ping 1.1.1.1 -n 1 -w 1 > nul

    call _run2.bat

    ping 1.1.1.1 -n 1 -w 1 > nul

    call _run3.bat

    ping 1.1.1.1 -n 1 -w 1 > nul

    call _run4.bat

    四、工作中的用途:

    比如你想在电脑上开多个游戏客户端,每个客户端使用不同的账号登陆,就可以自动获取启动参数然后填充账号,用途当然不仅限于此,发挥你的想象吧~

    相关文章

      网友评论

          本文标题:2019-01-10

          本文链接:https://www.haomeiwen.com/subject/gwjarqtx.html