(??)
好了,能看到这行的,说明你已经是个消化第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(\声音控制,以后会讲到 _root.score += score;
depth = _root.xs.getNextHighestDepth();
var a:MovieClip = _root.xs.attachMovie(\\显示得分的MC a.aaa.score = \ a._x = _x; a._y = _y;
this.removeMovieClip(); } }
然后是两个宝物的CLASS,继承了金币的类,只不过改写了被人物吃到后的效果 爱心
复制内容到剪贴板
代码: class items.Bao1 extends items.Jin { public function getItem() { _root.music_control.snd(\
depth = _root.xs.getNextHighestDepth();
var a:MovieClip = _root.xs.attachMovie(\\ a.aaa.score = \ a._x = _x; a._y = _y; ////////
_root.time_c._time += 8;
///////调时间控制类的public方法,后面会讲到 this.removeMovieClip(); } } 五角星
复制内容到剪贴板
代码: class items.Bao2 extends items.Jin { public var score:Number = 30; public function getItem() {
//_root.score+=score _root.music_control.snd(\ /////// for (var i in _root.item) {
if (_root.item[i]._name.substr(0, 3) != \ _root.item[i].getItem(); } }
_root.score += score;
depth = _root.xs.getNextHighestDepth();
var a:MovieClip = _root.xs.attachMovie(\
\ a.aaa.score = \ a._x = _x; a._y = _y; ///////
this.removeMovieClip(); }
}
宝物这类,和人物类有点相似的。
下节会把时间控制类和分数控制类一起讲掉。大家快把这节的内容消化了吧~ LESSON 9 范例接宝游戏中得分显示类和时间控制类的CLASS讲解
事实上这两部分比较简单 所以并在一起讲解了
讲解前先点开FLA文件,把这两个MC看看,对MC构造了解了,才能写CLASS嘛~
看下得分显示类的代码
复制内容到剪贴板
代码: class game.Score_view extends MovieClip { private var w1:MovieClip; private var w2:MovieClip; private var w3:MovieClip; private var w4:MovieClip; private var w5:MovieClip; private var w6:MovieClip; private var i:Number //构造函数
function Score_view() { init(); }
//公-私有方法
public function init() { onEnterFrame = Control; }
private function Control() { for (i=1; i<=6; i++) {
if (i<=int(String(_root.score).length)) {
this[%ubstr(i*(-1), 1))+1); } else {
this[\ } } } }
原理很简单,就是让这个MC一直onEnterFrame着,按照总得分来不断操控MC里的6个数字MC变化
仔细思考下Control()里的代码,想通了其实很简单哦~~
不多说了,懂了后就跟我看时间控制类的(不懂就继续看,直到看懂为止)
下面是时间控制类
复制内容到剪贴板
代码: class game.Time_control extends MovieClip{ private var t:Number public var time:Number
//------------------------------------------ /*
function Time_control(){ init() }
*/这段被注销掉了,因为我不要它一出现在舞台就开始倒计时。什么时候倒计时,游戏控制类会给本类发出命令(调用本类中的Go()的function) //------------------------------------------- public function set _time(ttt:Number):Void{ time=ttt }
public function get _time():Number{