当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > Flash游戏开发教程:第七节

ActionScript
FLASH 3D相册之利用BitmapData类制作
Flash 脚本游戏开发教程 第一课
Flash 脚本游戏开发教程第二课
Flash 脚本游戏开发教程第三课
Flash 脚本游戏开发教程第四课
Flash 脚本游戏开发教程第五课
Flash 脚本游戏开发教程第六课
Flash 脚本游戏开发教程第七课
Flash 脚本游戏开发教程第八课
Flash AS实现的蝌蚪摆尾动画的教程
从基础开始深入学Flash AS3教程(4)(译文)
从基础开始深入学Flash AS3教程(5)(译文)
从基础开始深入Flash AS3教程(2)(译文)
从基础开始深入学Flash AS3教程(3)(译文)
Flash AS3对单个图片进行角色动作化处理
从基础开始深入Flash AS3教程(1)(译文)
Flash教程:if条件语句的用法
Flash AS教程:_visible属性的详细讲解
Flash AS教程:图片环绕旋转效
Flash教程:trace()的使用

ActionScript 中的 Flash游戏开发教程:第七节


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-16   浏览: 66 ::
收藏到网摘: n/a

请先阅读: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();
}
}
然后是两个宝物的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();
}
}
宝物这类,和人物类有点相似的。
下节会把时间控制类和分数控制类一起讲掉。大家快把这节的内容消化了吧~