国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Cocos2d-x中調用Lua及HelloWorld.lua源碼分解

2024-07-21 23:03:59
字體:
來源:轉載
供稿:網友

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,調用Lua,HelloWorld.lua

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新晃| 普格县| 阿拉善左旗| 樟树市| 肇庆市| 邵武市| 吉林省| 阳东县| 博客| 福海县| 滨海县| 巴塘县| 吴江市| 金华市| 忻州市| 个旧市| 六枝特区| 盐池县| 浮山县| 巧家县| 漠河县| 湄潭县| 黎城县| 千阳县| 金乡县| 新平| 漯河市| 沾化县| 大荔县| 甘洛县| 九江县| 长顺县| 科尔| 文登市| 台中县| 安顺市| 壤塘县| 靖边县| 特克斯县| 阜宁县| 安国市|