欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Cocos2d-x中調(diào)用Lua及HelloWorld.lua源碼分解

 更新時(shí)間:2014年09月12日 10:57:02   作者:笨木頭  
這篇文章主要介紹了Cocos2d-x中調(diào)用Lua及HelloWorld.lua源碼分解,本文最后總結(jié)了一些Lua的語(yǔ)法,需要的朋友可以參考下

Lua腳本,以前我不知道它有多強(qiáng)大,但是當(dāng)我做了1年的手機(jī)網(wǎng)游之后,起碼我發(fā)現(xiàn)了,更新客戶端是一件很恐怖的事情(會(huì)導(dǎo)致大量玩家的流失,以及有一個(gè)漫長(zhǎng)并且驚心動(dòng)魄的審核過程),太扯了。于是,如果可以只更新腳本,那就不需要玩家重新下載客戶端了,直接在線更新,嗯嗯,雖然我發(fā)現(xiàn)了這個(gè),但是還沒有實(shí)現(xiàn)。噗,代碼寫爛了,不好改。
 
所以啊,我已經(jīng)做好準(zhǔn)備了,如果下次用cocos2d-x開發(fā),lua不可少啊~!
 
看看官方的例子吧,先來AppDelegate.cpp的applicationDidFinishLaunching函數(shù):

復(fù)制代碼 代碼如下:

#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腳本的方式有點(diǎn)奇怪,但是和LuaJava的加載方式很像(我喜歡,噗)。
也就是說,我們要執(zhí)行某個(gè)lua腳本的話,就是用上面這段代碼了,不解釋,不好解釋(難道要我解釋源碼?噗)。

來,看看helloWorld.lua是怎么寫的吧:

復(fù)制代碼 代碼如下:

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的語(yǔ)法其實(shí)我也不是很熟悉,因?yàn)槲艺娴臎]有用lua開發(fā)過。說說我懂的吧,注意幾點(diǎn):
1. 一般變量都要local xx形式,不要習(xí)慣了搞個(gè)int xx什么的哈
2.  lua是沒有變量類型這個(gè)說法,你想它是什么類型,它就是什么類型,當(dāng)然,賦值之后它的類型也就確定了
3.  然后,貌似cocos2d-x的lua要使用API的函數(shù)好簡(jiǎn)單啊,比如在cpp應(yīng)該是
CCLayer::create(),而到了lua這里就CCLayer:create(),是的,注意一個(gè)是兩個(gè)冒號(hào),一個(gè)是一個(gè)冒號(hào)。
4. 使用方法是一個(gè)冒號(hào),那使用屬性呢?好像是,一個(gè)點(diǎn)。
5. 注意了,不管是靜態(tài)方法,非靜態(tài)方法,都是用一個(gè)冒號(hào),在這里不存在“->”符號(hào)
 
好喇,大家又不是笨蛋,自己看看官方的hello.lua就能發(fā)現(xiàn)很多知識(shí)了。

相關(guān)文章

  • Lua中的持久化和序列化詳解

    Lua中的持久化和序列化詳解

    這篇文章主要介紹了Lua中的持久化和序列化詳解,本文詳細(xì)講解了Lua中的持久化和序列化,并給出代碼實(shí)例,需要的朋友可以參考下
    2014-09-09
  • Lua教程(三):C語(yǔ)言、C++中調(diào)用Lua的Table示例

    Lua教程(三):C語(yǔ)言、C++中調(diào)用Lua的Table示例

    這篇文章主要介紹了Lua教程(三):C語(yǔ)言、C++中調(diào)用Lua的Table示例,即在C語(yǔ)言、C++中讀取、操作Lua的Table,需要的朋友可以參考下
    2014-09-09
  • Lua腳本實(shí)現(xiàn)遞歸刪除一個(gè)文件夾

    Lua腳本實(shí)現(xiàn)遞歸刪除一個(gè)文件夾

    這篇文章主要介紹了Lua腳本實(shí)現(xiàn)遞歸刪除一個(gè)文件夾,本文給出了C++和Lua兩個(gè)版本的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-05-05
  • Lua中強(qiáng)大的元方法__index詳解

    Lua中強(qiáng)大的元方法__index詳解

    這篇文章主要介紹了Lua中強(qiáng)大的元方法__index詳解,本文著重講解了使用__index元方法實(shí)現(xiàn)table的繼承,需要的朋友可以參考下
    2014-09-09
  • Lua腳本語(yǔ)言簡(jiǎn)明入門教程

    Lua腳本語(yǔ)言簡(jiǎn)明入門教程

    這篇文章主要介紹了Lua腳本語(yǔ)言簡(jiǎn)明入門教程,本文簡(jiǎn)潔干練,可以讓一個(gè)有編程基礎(chǔ)的快速的學(xué)會(huì)Lua腳本語(yǔ)言,需要的朋友可以參考下
    2014-09-09
  • Lua的內(nèi)存管理淺析

    Lua的內(nèi)存管理淺析

    這篇文章主要介紹了Lua的內(nèi)存管理淺析,本文講解了內(nèi)存管理的相關(guān)知識(shí),同時(shí)講解了垃圾收集器的機(jī)制,需要的朋友可以參考下
    2014-09-09
  • Lua教程(十一):模塊與包詳解

    Lua教程(十一):模塊與包詳解

    這篇文章主要介紹了Lua教程(十一):模塊與包詳解,本文講解了require函數(shù)、 編寫模塊的基本方法、使用環(huán)境、module函數(shù)等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Lua中的運(yùn)算符簡(jiǎn)明總結(jié)

    Lua中的運(yùn)算符簡(jiǎn)明總結(jié)

    這篇文章主要介紹了Lua中的運(yùn)算符簡(jiǎn)明總結(jié),本文總結(jié)了數(shù)學(xué)運(yùn)算符、連接運(yùn)算、賦值運(yùn)算、 邏輯運(yùn)算、關(guān)系運(yùn)算等運(yùn)算符,需要的朋友可以參考下
    2014-10-10
  • Lua元表與元方法實(shí)例講解

    Lua元表與元方法實(shí)例講解

    這篇文章主要介紹了Lua元表與元方法實(shí)例講解,本文講解了算術(shù)類、關(guān)系類元方法、table訪問的元方法等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • lua操作excel方法分享

    lua操作excel方法分享

    這篇文章主要介紹了lua操作excel方法分享,在網(wǎng)上幾乎沒有找到像樣的示例資料,所以自己寫了份,推薦給大家。
    2015-03-03

最新評(píng)論