请先阅读:Flash游戏开发教程:第六节
先补充个游戏里的结构:
- _root下有三个空MC: pl,item和xs
- pl这个空MC是用来attach人物的
- item这个空MC是用来attach宝物的
- xs这个MC是用来attach显示得分的
为什么要这么做呢?……因为管理方便呀~以后你会慢慢体会到的。
严重警告:第7课未搞懂看明白者,请回上节反复研究,直至搞懂。不然继续往下看会让你体内真气逆行,任、督二脉自锁,全身犹如蚂蚁咬,饭吃不下,觉睡不着,放P恶臭,对FLASH丧失学习信心……
(……)
好了,能看到这行的,说明你已经是个消化第7节内容的鸟了。 这一节我也话不多说,直接放代码了。用你第7节学到的内容自我检验下。
金币10和50共用的CLASS
class items.Jin extends MovieClip { static var basic_speed:Number = 3; //下落基础速度 public var score:Number = 10; //得分 public var speed:Number; //下落速度 private var hit:MovieClip; //声明碰撞检测的MC private var depth:Number; //当宝物被人物获得,显示得分的MC的深度 //---构造函数--- function Jin() { init(); } //隐式设置-获取方法 public function set _score(kkk:Number):Void { score = kkk; }//得分10还是50,传入这个参数就能解决 public function _bspeed(){ basic_speed= 3; trace(basic_speed) }//这个要说明下,静态变量basic_speed每实例化一个MC都会自我增加,所以基础速度越来越快。这个方法是让basic_speed变回原始的3。用于每回合开始时初始化使用。 public function set _speed(sss:Number):Void { speed = sss; } //共有-私有方法 private function init() { _x = 50+random(450); _y = -15; speed = basic_speed+random(50)/10;//下落速度是由基础速度+随机增量 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(); } ///////////////////////////////// 碰撞检测哦~ } public function getItem() { _root.music_control.snd("jin");//声音控制,以后会讲到 _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(); } }
|