• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Cocos2d-x中调用Lua及HelloWorld.lua源码分解

    Lua脚本,以前我不知道它有多强大,但是当我做了1年的手机网游之后,起码我发现了,更新客户端是一件很恐怖的事情(会导致大量玩家的流失,以及有一个漫长并且惊心动魄的审核过程),太扯了。于是,如果可以只更新脚本,那就不需要玩家重新下载客户端了,直接在线更新,嗯嗯,虽然我发现了这个,但是还没有实现。噗,代码写烂了,不好改。
     
    所以啊,我已经做好准备了,如果下次用cocos2d-x开发,lua不可少啊~!
     
    看看官方的例子吧,先来AppDelegate.cpp的applicationDidFinishLaunching函数:

    复制代码 代码如下:

    #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
        CCString* pstrFileContent = CCString::createWithContentsOfFile("helloWorld.lua ");
        if (pstrFileContent)
        {
            pEngine->executeString(pstrFileContent->getCString());
        }
    #else
        std::string path = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath("helloWorld.lua");
        pEngine->addSearchPath(path.substr(0, path.find_last_of("/")).c_str());
        pEngine->executeScriptFile(path.c_str());
    #endif

    是的,就看这一段就好了。就Android加载lua脚本的方式有点奇怪,但是和LuaJava的加载方式很像(我喜欢,噗)。
    也就是说,我们要执行某个lua脚本的话,就是用上面这段代码了,不解释,不好解释(难道要我解释源码?噗)。

    来,看看helloWorld.lua是怎么写的吧:

    复制代码 代码如下:

    local winSize = CCDirector:sharedDirector():getWinSize()
    local function createHelloLayer()
        local layer = CCLayer:create();
        local sprite = CCSprite:create("Default.png");
        sprite:setPosition(winSize.width / 2, winSize.height / 2);
        layer:addChild(sprite);
        return layer
    end
    local scene = CCScene:create();
    scene:addChild(createHelloLayer());
    CCDirector:sharedDirector():runWithScene(scene);

    哎哎,lua的语法其实我也不是很熟悉,因为我真的没有用lua开发过。说说我懂的吧,注意几点:
    1. 一般变量都要local xx形式,不要习惯了搞个int xx什么的哈
    2.  lua是没有变量类型这个说法,你想它是什么类型,它就是什么类型,当然,赋值之后它的类型也就确定了
    3.  然后,貌似cocos2d-x的lua要使用API的函数好简单啊,比如在cpp应该是
    CCLayer::create(),而到了lua这里就CCLayer:create(),是的,注意一个是两个冒号,一个是一个冒号。
    4. 使用方法是一个冒号,那使用属性呢?好像是,一个点。
    5. 注意了,不管是静态方法,非静态方法,都是用一个冒号,在这里不存在“->”符号
     
    好喇,大家又不是笨蛋,自己看看官方的hello.lua就能发现很多知识了。

    您可能感兴趣的文章:
    • Cocos2d-x学习笔记之Hello World源码分析
    • CocosCreator通用框架设计之资源管理
    • 如何在CocosCreator中做一个List
    • CocosCreator骨骼动画之龙骨DragonBones
    • 如何在CocosCreator里画个炫酷的雷达图
    • 详解CocosCreator MVC架构
    • 详解CocosCreator消息分发机制
    • CocosCreator入门教程之网络通信
    • 如何用CocosCreator制作微信小游戏
    • 详解CocosCreator系统事件是怎么产生及触发的
    • 怎样在CocosCreator中使用游戏手柄
    • 解读CocosCreator源码之引擎启动与主循环
    上一篇:Lua学习笔记之数据结构
    下一篇:Lua和C++的通信流程分解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Cocos2d-x中调用Lua及HelloWorld.lua源码分解 Cocos2d-x,中,调用,Lua,及,HelloWorld.lua,