1. 程式人生 > >Cocos2d Lua 入門小例子 一個記憶力遊戲

Cocos2d Lua 入門小例子 一個記憶力遊戲


1.遊戲說明


一個"記憶"類的比賽遊戲。你和電腦對戰,輪到誰的回合,誰翻兩張牌,如果兩張牌一樣,就消掉這兩張牌,得2分,可以繼續翻牌,如果兩張牌不一樣,就換一個人。直到最後,看誰的得分高。

2. Lua 簡單面向物件


我們知道Lua是指令碼語言,不是真正面向物件語言。但是面向物件好像能讓程式碼結構更加合理,Javascript, Lua都可以模擬出面向物件。Lua面向物件還有超多種方式實現,這裡當然不一一介紹。簡單來看個繼承Sprite的寫法。抄官方的。

MatchCard = class("Match",function (spriteFrameName, value)
    MatchCard.value = value //--屬性
    return cc.Sprite:createWithSpriteFrameName("MatchCardBg.png")
end)
MatchCard.test= true //--屬性
 //--一個方法
function MatchCard:containsTouchLocation(x,y)
local position = cc.p(self:getPosition())
local s = self:getContentSize()    
local touchRect = cc.rect(-s.width / 2 + position.x, -s.height / 2 + position.y, s.width, s.height)    
local b = cc.rectContainsPoint(touchRect,cc.p(x,y))    
return b
end
//--new 一個物件,當然這跟c++的那種不一樣的
local card = MatchCard.new()
//--呼叫方法
card:containsTouchLocation()

3.Cocos Code Ide 建立Lua專案


我這遊戲是用Cocos Code Ide 建立的,還算順利。API參考Lua-Tests就行了。整體是一樣的。還沒玩過Quick cocos2d-x。

4.cocos2d lua 使用感受


使用Cocos2d-x的C++程式設計感覺是最舒服的,雖然C++語法有寫難,但不容易遇到很奇怪的Bug,就是編譯速度太慢了,跟策劃不好合作,像Js,和Lua,你定義好一些寫法,策劃直接也可以寫Js和Lua,C++就不行了。還有Cocos2d-x C++ 能用上最新版本,移植Android和IOS沒什麼問題。還有Cocos2d-x C++感覺能寫出較高質量的程式碼。還有VS2012非常好用。

Lua,JS都是指令碼語言,用來開發遊戲速度快很多。不需要編譯。就是習慣了C++那種條條框框的面向物件後,寫Lua,JS的面向物件總怪怪的。Debug有時候相對C++比較困難。cocos2d JS還是用WebStorm編寫比較爽。Cocos Code Ide 跟VS2012和WebStorm還有差距,某些方面因為是整合Cocos的遊戲框架,所以某些方面比較好用。

5.動態圖以及專案原始碼下載



我對Lua使用比較少,感覺寫的比較差,太多全域性變數。專案下載地址:

exe可以直接執行在/runtime/win32/MatchGame.exe,不支援XP,Win7應該可以。