flash 脚本代码游戏研发教程第七课

更新时间:15-11-07 22:41 热度:910
 

先补给个游戏里的结构:

_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();
}
}

而后是两个珍贵的东西的class,秉承了金币的类,只然而改写了被人物吃到后的效果

关爱之心

复制代码

代码如下所述:

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;
///////调时间扼制类的public办法,后面会讲到
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();
}
}

珍贵的东西这类,和人物类有些相仿的。
下节会把时间扼制类和分数字控制制类一块儿讲掉。大家快把这节的内部实质意义克化了吧~