Flash 脚本游戏开发教程第七课
Flash 脚本游戏开发教程第七课
发布时间:2016-12-21 来源:查字典编辑
摘要:先补充个游戏里的结构:_root下有三个空MC:pl,item和xspl这个空MC是用来attach人物的item这个空MC是用来attac...

先补充个游戏里的结构:

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

}

}

宝物这类,和人物类有点相似的。

下节会把时间控制类和分数控制类一起讲掉。大家快把这节的内容消化了吧~

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Flash教程学习
热门Flash教程学习
网页设计子分类