使用Cocos Code Ide開發之:lua繼承的理解,cocoslua
邊寫邊錯,邊錯邊改,邊改變搜,再改,改出了些心得。可能會有錯誤,多包涵,接受批評。
1 ---Base.lua 2 3 Base = {} 4 5 Base.__index = Base 6 Base.value = nil 7 8 function Base:new(_value) 9 local _t = {}10 setmetatable(_t, Base)11 _t.value = _value12 return _t13 end
1 ---Children.lua 2 require("Base") 3 Children = {} 4 5 setmetatable(Children, Base) 6 Children.__index = Children 7 Children.type = nil 8 9 function Childeren:new(_value,_type)10 local _c = Base:new(_value)11 setmetatable(_c, Children)12 _c.type = _type13 return _c14 end
Base.lua 是基類,Children.lua 是繼承Base.lua的子類,可能大家習慣了C++,我轉下
1 --- .h 2 3 class Base 4 { 5 public: 6 void setValue(_value) 7 int value; 8 } 9 10 --- .cpp11 Base::setValue(_value)12 {13 value = _value;14 }15 16 main()17 {18 Base* b = new Base();19 cout << b.value << endl;20 }
這裡的 b 和 上面的 _t,我認為是一樣的,都是一個對象,_t 是 table 類型的,
_t.value 就像 b.value.
setmetatable(Children,Base): 將 Childeren 的元表設定為 Base ,
setmetatable(_c, Children) : 將 _c 的元表設定為 Children,
舉個例子吧:
_c : 兒子 Children :爸爸 Base : 爺爺
兒子 想買一個玩具,若 : 1. 自己有錢,直接買,獲得到玩具
2. 自己沒錢,去搜尋 爸爸 的褲兜,若有錢,獲得到錢,買玩具
3. 自己沒錢,去搜尋 爸爸 的褲兜,若沒有錢,去搜尋 爺爺 的褲兜,若有錢,獲得到錢,買玩具, 若沒錢, 兩手空空,只能是 nil
類方法也是如此。
Cocos Studio與Cocos2d-js、Cocos Code IDE它們之間的不同與聯絡
cocos studio是用來設定動畫,圖片的。
cocos2d-js是急於js語言的cocos2d架構,主要用於網頁端的開發。
cocos code ide是cocos官方出的cocos2d開發環境,之前沒出官方ide的時候,都是用eclipse和vs等其他開發環境來開發的。
Cocos2d-x、Quick-Cocos2d-x、Cocos Studio、Cocos2d-js、Cocos Code IDE的不同
Cocos2d-x是跨平台的架構,用C++,包括windows、ios、android、linux等都可以移植。
Quick-Cocos2d-x是在Cocos2d-x上加了一些功能,具體我也沒用過,我只用過Cocos2d-x。
而Cocos2d-js是用JS語言,主要是用於網頁端遊戲的開發。
Cocos Studio主要是遊戲介面和動畫的設計。
Cocos Code IDE是cocos官方發布的編程開發環境。如果不用官方的,我們可以用eclipse和vs等其他IDE,配置好之後進行開發。
Cocos2d-x的2.X版本和3.X差別還挺大的,兩邊的代碼不太能相容,需要一些小修改才能運行。
純手打。。。