您好,登錄后才能下訂單哦!
藍鷗iOS培訓講師推薦:利用空閑時間和大家分享一Cocos2dx的有關內容,Cocos2d是一款非常好用的手游引擎,也是現在最火的引擎,有款游戲都是利用Cocos2dx引擎開發完成的。
一、對象的方法函數
今天的介紹內容是有關lua面向對象編程,首先要介紹是對象的方法函數,舉例說明:
從上面程序中可以看出,是先創建了一個函數,同時調用該函數。而且在調用函數時用了全局Hero,Lua盡量減少全局變量的使用。那么這時就要注意了,如果不故意的改動了Hero,那么就很有可能不能正常工作了。
有人可能會將localtemA=A中的函數修改為:
不過讓人麻煩的是,每次的selr都需要自己傳,事實上lua也可隱性調用self,再修改:
:的使用,冒號可以在方法中添加一個額外的隱藏參數。上面其實也看到了Hero.skill()和Hero:skill()的
區別。
二、類,將table作為自己的元素
在上面的Hero程序中,再作修改:
創建一個新英雄的時候,oneHero將Hero設置為自己的元表,當oneHero:skill(10)的時候,在tableoneHero中查找skill,沒有找到后,會進一步搜索元表的__index。
所以等價于:getmetatable(oneHero).__index.skill(oneHero,10)
而getmetatable(oneHero)是Hero,Hero.__index還是Hero
所以等價于Hero.skill(oneHero,10)
三、繼承
舉例說明:
小結:每個對象沒有的方法都會去父類中尋找,所以某個對象需要一些新的屬性方法,就在該對象中實現就ok了,也沒有那么麻煩。
基本上就是這樣,理解起來簡單又明了,希望能夠對你有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。