1. 程式人生 > >cocos2dx-3.11 使用建立Lua專案以及執行自定義場景

cocos2dx-3.11 使用建立Lua專案以及執行自定義場景

第一節  建立專案

現在用cocos2dx3.11版本寫一個小遊戲,首先建立專案,在終端裡輸入如下指令:

cd/Users/xiaosong1531/Desktop/cocos2d-x-3.11.1/tools/cocos2d-console/bin

進入到bin目錄之後,輸入建立專案的指令:

cocos newCatchFishLua –p com.yuting.CatchFishLua –l lua –d ~/Desktop

然後在桌面上就建立了CatchFishLua這個專案。開啟專案的檔案在這個資料夾裡的:

CatchFishLua/frameworks/runtime-src/proj.ios_mac/CatchFishLua.xcodeproj,雙擊這個檔案,即可開啟。

為了前期除錯編譯方便快捷,我們選擇如下進行編譯(先不選擇ios,ios編譯有點慢)

編譯之後,執行,效果如下:


這樣,一個專案就執行成功了。接下來,看一下專案的組成結構(如下如所示):


之後我們所用的資源全都放在res資料夾下,我們所建立的類基本上都存放在views資料夾下。

關於這個專案是怎樣執行的,我大概說一下:從2.x版本轉過的同學,一般都是找AppDelegate檔案,從lua建立的這個專案中,也有AppDelegate檔案,看下面程式碼:


這樣我們找main.lua就好了。



第一行程式碼的意思是:取消載入luac檔案

第二行和第三行是新增資源搜尋目錄,所以我們可以直接把資源和檔案新增到res和src目錄下。

第十三行是執行main函式,所以就呼叫了require(“app.MyApp”):create():run()

在lua中,檔案的路徑使用”.”,而不使用”/”。在app資料夾下有MyApp.lua檔案,這個檔案返回MyApp,它是繼承mvc檔案下的AppBase檔案,而AppBase檔案只是一個普通的類,在預設的類裡,有三個函式:

ctor(建構函式),new函式,create函式。世界上create函式裡呼叫的就是new函式,而new函式裡又呼叫了建構函式。之後,呼叫run()


在mvc下的ViewBase.lua檔案中:


這樣就運行了一個場景,而場景的內容就是MainScene.lua檔案中設定的。

這是這個預設建立專案的執行流程。當然,在我們實際專案中,可能不按這個流程做,所以接下來,就直接在main函式裡執行自定義的場景。

首先,在跟MainScene.lua同一級目錄下,建立CLogonLayer.lua檔案,並在這個檔案中寫入如下基本內容:

local size =cc.Director:getInstance():getVisibleSize()

local CLogonLayer =class(“CLogonLayer”, function() 

return cc.Scene:create() 

end)

localCLogonLayer:create()

           local scene = CLogonLayer:new()

           scene:addChild(scene:createLayer())

           return scene

end

localCLogonLayer:createLayer()

           local layer = cc.Layer:create()

           local label =cc.Label:createWithSystemFont(“Hello Lua”, “Arial”, 32)

           label:setPosition(cc.p(size.width/2,size.height/2))

           layer:addChild(label)

           return layer

end

return CLogonLayer

寫到這裡,這個最基本的場景就寫完了,接下來,在main函式中,我們不採用系統的require(“app.MyApp”):create():run()。

換成我們自定義的場景:

local cLogonLayer =require(“app.views.CLogonLayer”)

local cLogonScene =cLogonLayer.create()

cc.Director:getInstance():runWithScene(cLogonScene)

然後執行,我們就會看到執行在螢幕上就是我們自定義的場景。


下面我們來修改一下螢幕的大小,也就是解析度。

在我的專案中,我的解析度是固定不變的,也就是1280*720

在專案下的config.lua中,將width改為1280,height改為720,autoscale全部改為SHOW_ALL即可。