范例接寶游戲中寶物類(lèi)的CLASS講解
先補(bǔ)充個(gè)游戲里的結(jié)構(gòu):
- _root下有三個(gè)空MC: pl,item和xs
- pl這個(gè)空MC是用來(lái)attach人物的
- item這個(gè)空MC是用來(lái)attach寶物的
- xs這個(gè)MC是用來(lái)attach顯示得分的
為什么要這么做呢?……因?yàn)楣芾矸奖阊絶以后你會(huì)慢慢體會(huì)到的。
嚴(yán)重警告:第7課未搞懂看明白者,請(qǐng)回上節(jié)反復(fù)研究,直至搞懂。不然繼續(xù)往下看會(huì)讓你體內(nèi)真氣逆行,任、督二脈自鎖,全身猶如螞蟻咬,飯吃不下,覺(jué)睡不著,放P惡臭,對(duì)FLASH喪失學(xué)習(xí)信心……
(……)
好了,能看到這行的,說(shuō)明你已經(jīng)是個(gè)消化第7節(jié)內(nèi)容的鳥(niǎo)了。 這一節(jié)我也話(huà)不多說(shuō),直接放代碼了。用你第7節(jié)學(xué)到的內(nèi)容自我檢驗(yàn)下。
金幣10和50共用的CLASS
class items.Jin extends MovieClip { static var basic_speed:Number = 3; //下落基礎(chǔ)速度 public var score:Number = 10; //得分 public var speed:Number; //下落速度 private var hit:MovieClip; //聲明碰撞檢測(cè)的MC private var depth:Number; //當(dāng)寶物被人物獲得,顯示得分的MC的深度 //---構(gòu)造函數(shù)--- function Jin() { init(); } //隱式設(shè)置-獲取方法 public function set _score(kkk:Number):Void { score = kkk; }//得分10還是50,傳入這個(gè)參數(shù)就能解決 public function _bspeed(){ basic_speed= 3; trace(basic_speed) }//這個(gè)要說(shuō)明下,靜態(tài)變量basic_speed每實(shí)例化一個(gè)MC都會(huì)自我增加,所以基礎(chǔ)速度越來(lái)越快。這個(gè)方法是讓basic_speed變回原始的3。用于每回合開(kāi)始時(shí)初始化使用。 public function set _speed(sss:Number):Void { speed = sss; } //共有-私有方法 private function init() { _x = 50+random(450); _y = -15; speed = basic_speed+random(50)/10;//下落速度是由基礎(chǔ)速度+隨機(jī)增量 basic_speed+=0.03 //trace(basic_speed) onEnterFrame = Move; } private function Move() { _y += speed; if (_y>380) { this.removeMovieClip(); } ///////////////////////////////// if (hit.hitTest(_root.pl.player.hit)) { getItem(); } ///////////////////////////////// 碰撞檢測(cè)哦~ } public function getItem() { _root.music_control.snd("jin");//聲音控制,以后會(huì)講到 _root.score += score; depth = _root.xs.getNextHighestDepth(); var a:MovieClip = _root.xs.attachMovie("getScore", "getScore"+depth, depth++);//ATTACH顯示得分的MC a.aaa.score = "+"+score; a._x = _x; a._y = _y; this.removeMovieClip(); } }
然后是兩個(gè)寶物的CLASS,繼承了金幣的類(lèi),只不過(guò)改寫(xiě)了被人物吃到后的效果
愛(ài)心
class items.Bao1 extends items.Jin { public function getItem() { _root.music_control.snd("bao"); depth = _root.xs.getNextHighestDepth(); var a:MovieClip = _root.xs.attachMovie("getScore", "getScore"+depth, depth++); a.aaa.score = "TIME"; a._x = _x; a._y = _y; //////// _root.time_c._time += 8; ///////調(diào)時(shí)間控制類(lèi)的public方法,后面會(huì)講到 this.removeMovieClip(); } }
五角星
class items.Bao2 extends items.Jin { public var score:Number = 30; public function getItem() { //_root.score+=score _root.music_control.snd("bao"); /////// for (var i in _root.item) { if (_root.item[i]._name.substr(0, 3) != "bao") { _root.item[i].getItem(); } } _root.score += score; depth = _root.xs.getNextHighestDepth(); var a:MovieClip = _root.xs.attachMovie("getScore", "getScore"+depth, depth++); a.aaa.score = "+"+score; a._x = _x; a._y = _y; /////// this.removeMovieClip(); } }
寶物這類(lèi),和人物類(lèi)有點(diǎn)相似的。 下節(jié)會(huì)把時(shí)間控制類(lèi)和分?jǐn)?shù)控制類(lèi)一起講掉。大家快把這節(jié)的內(nèi)容消化了吧~
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2799019-1-1.html
本文鏈接:http://www.95time.cn/tech/multimedia/2008/6055.asp
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論
|