Cocos2d Lua 入門小例子 一個記憶力遊戲
阿新 • • 發佈:2019-01-22
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應該可以。