周云的FLASH小游戏开发教室 - 基础篇(全11节[完])(5)

2019-08-31 22:14

(??)

好了,能看到这行的,说明你已经是个消化第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{


周云的FLASH小游戏开发教室 - 基础篇(全11节[完])(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:证券营销人员合规考试试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: