Flash 脚本游戏开发教程第七课

所属分类: 媒体动画 / Flash教程 阅读数: 42
收藏 0 赞 0 分享

先补充个游戏里的结构:

_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怎么快速制作2020年新年贺卡?

flash怎么快速制作2020年新年贺卡?flash中想要设计一款新年贺卡,该怎么制作一个新年贺卡呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

Flash怎么制作图片循环滚动的动画效果?

Flash怎么制作图片循环滚动的动画效果?flash中想要制作一个推按滚动的效果,该怎么制作这个效果呢?下面我们就来看看详细的教程,详细请看下文介绍
收藏 0 赞 0 分享

Flash8怎么制作跷跷板动画效果?

Flash8怎么制作跷跷板动画效果?Flash8中想要制作一个模拟跷跷板动画的效果,该怎么制作这个动画效果呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么制作页面公告栏? flash滚动公告栏的制作方法

flash怎么制作页面公告栏?页面中我们经常能见到滚动的公告,该怎么制作滚动的文字公告呢?下面我们就来看看flash滚动公告栏的制作方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Animate怎么嵌入字体? Animate字体的添加方法

Animate怎么嵌入字体?Animate中想要嵌入字体,该怎么嵌入文字呢?下面我们就来看看Animate字体的添加方法,需要的朋友可以参考下
收藏 0 赞 0 分享

flash怎么制作擦出图片的动画效果?

flash怎么制作擦出图片的效果?flash中想要制作一个动画效果,该怎么制作擦除图片的效果呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

flash引导层动画效果怎么制作?

flash引导层动画效果怎么制作?flash中想要制作一个引导层的动画效果,该怎么制作这个动画效果呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

flash做怎么模拟化学式分子原型旋转的动画效果?

flash做怎么模拟化学式分子原型旋转的动画效果?flash中想要制作一个讲述化学式分子原型的一些动画,辅助教学,该怎么制作这个动画效果呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

Animate元件怎么导出为PNG序列?

Animate元件怎么导出为PNG序列?Animate中想要将原件到处为rng序列,该怎么实现呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

Flash怎么制作爬动的蚂蚁动画?

Flash怎么制作爬动的蚂蚁动画?flash中制作动画很简单,想要制作一个爬行的蚂蚁,该怎么给蚂蚁添加爬行的动画效果呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多