在具體講解CLASS構(gòu)造前,想花點篇幅幫小鳥們理解下CLASS是什么東東。
還是來舉個例子,有一個機(jī)械戰(zhàn)士的MC,這個MC里有機(jī)械戰(zhàn)士完整的構(gòu)造,手腳、身體、武器……
但這個機(jī)械戰(zhàn)士仍然不能動,因為它只是一具機(jī)械,沒有大腦程序告訴它該怎么走動,怎么攻擊……
而我們做的“機(jī)械戰(zhàn)士控制.as”的CLASS,綁定在這個戰(zhàn)士身上。
這個CLASS可以看作為一個封閉的黑匣子,里面裝載了指導(dǎo)機(jī)械人行動的程序,包括怎么移動、怎么攻擊、怎么做事情A、怎么做事情B。
而這一切都是封閉在黑匣子里的,影響不到外界程序,外接程序也影響不到它。是個獨立的東西。
這個黑匣子可以裝載到任何一個機(jī)械戰(zhàn)士身上,任何一個機(jī)械戰(zhàn)士軀體的MC一旦綁定上這個CLASS,就能立即行動起來。
而且我們可以給這個CLASS做個外界可以調(diào)用的接口。
就像黑匣子上裝了個可以給外界摁的按鈕,你摁一次它就發(fā)一次絕招。
象上一節(jié)說的,CLASS模式做游戲可以團(tuán)隊開發(fā)。我可以讓別人幫我做CLASS,做好我拿來用。我不需要知道他代碼怎么寫的,我只需要知道這個CLASS能讓這個機(jī)械人按照什么規(guī)則行動,有什么按鈕可以讓我摁。
封裝性的好處由此顯示出來了。
再闖關(guān)游戲里,經(jīng)常出現(xiàn)比如畫面上主角一人對N個敵人的場面。這些敵人每個都可以綁定同一個CLASS。就是說寫了一個CLASS分別裝載到N個實例化的MC中去,而不用每個敵人都各自寫一段代碼。
可能其中兩個敵人的生命和攻擊力不同。這也很簡單,在CLASS里做一個接收外部傳入生命和攻擊力兩個參數(shù)的功能,在敵人MC綁定CLASS后,再傳生命和攻擊力兩個變量的值到MC里即可。
不過要說明,CLASS并不是只能實例化在MC上,還可以裝在例如Object之類的上面。
比如我們很常用的一個FLASH本來就有的CLASS:SOUND
mySound=new Sound()
mySound.attachSound("a.mp3")
mySound.start(0,1)
這里我們就可以看作Sound類實例化了在mySound的上,而attachSound和start都是Sound類的“按鈕”,可以讓外部操控這個裝載了Sound類的mySound。我們并不知道Sound這個CLASS內(nèi)部代碼是如何的,但我們知道按鈕可以用來干什么,用的也不是很爽嗎?
新聞熱點
疑難解答