FLASH交互动画设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FLASH交互动画设计

一、总体设计

1.游戏总体概况

本实验为FLASH交互动画之——卡通游戏“接宝石”。移动小盆接上面落下来的物体,落下的不同物体代表其特定的分值。加分暂无上限,减分暂无下限,时间限制为20秒。

2.游戏界面及流程

【图1】游戏初始界面

【图1】为游戏初始界面,红宝石、蓝宝石、炸弹、钻石分别为排成一横线的旋转体。若按[帮助],则出现【图2】游戏规则界面。

【图2】游戏规则界面

【图2】表明接到的物体所代表的分值:炸弹(-6分)、蓝宝石(+2分)、红宝石(+3分)、钻石(+8分)。

若在【图1】游戏初始界面按[开始]则进入【图3】游戏界面。

【图3】游戏界面

初始状态分数为0,剩余时间为20秒,游戏开始后,移动小盆接上面落下的物体,炸弹(-6分)、蓝宝石(+2分)、红宝石(+3分)、钻石(+8分)。当剩余时间显示为0时,游戏结束,分数栏显示不再变化,界面自动转到如下【图4】选择界面。

【图4】选择界面

若按[继续],则进入【图3】游戏界面,开始新一轮的游戏;若按[退出],则退到【图1】游戏初始界面。

二、详细设计

1. 创建新文档

新建一个AvctionScript 2.0空白文档,在其属性栏设置文档大小为600像素╳400像素。

2. 元件的准备

(1)创建影片剪辑

①创建名为“计分器”的影片剪辑元件

创建两个图层,自上而下分别命名为“action”和“文本”。

“文本”图层上的操作:输入静态文字“分数”,在“文本”图层第1帧拖曳出一个文本框,将其【属性】中的【文本类型】设置为“动态文本”,【变量】设置为“txt”,在该图层的第2帧处插入帧。得到结果如下图:

“action”图层上的操作:在该层第1帧,输入动作语句:txt=_root.score;

②创建名为“计时器”的影片剪辑元件

创建两个图层,自上而下分别命名为“Action”和“文本”。

“文本”图层上的操作:输入静态文字“剩余时间”,在“文本”图层第1帧拖曳出一个文本框,将其【属性】中的【文本类型】设置为“动态文本”,【变量】设置为“txt”,在该图层的第2帧处插入帧。得到结果如下图:

并将“文本”层延长至第3帧。

“Action”图层上的操作:分别在1,2,3帧上插入空白关键帧,然后在Action的第1~3帧分别输入代码:

第1帧代码:

now = new Date();

startTime = now.getTime();

hasTime = 20;

txt = hasTime;b

第2帧代码:

now = new Date();

tempTime = now.getTime();

txt = hasTime - Math.round(((tempTime-startTime)/1000));

if (txt == 0){

_root.gotoAndStop("end");

this.stop();

}

第3帧代码:

gotoAndplay(_currentframe-1);

if (_currentframe==0)

gotoAndplay(2);

③创建名为“所有下落物”的影片剪辑

a.创建图形元件“bomb”、“blue”、“red”、“diamond”,从左到右分别如下所示:

b.创建名为“炸弹”的影片剪辑,在其编辑状态下,将图形元件“bomb”从【库】中拖至其时间轴的第1帧,在第1帧创建补间动画。第18帧插入关键帧,然后在第1~17帧之间单击任意一帧,在其【属性】面板,设置【旋转】为逆时针/顺时针,圈数为1圈。在第18帧添加动作代码“gotoAndplay;”。用相同方法制作名为“blue”、“red”、“diamond”三个影片剪辑。将这四个影片剪辑设置为不同的时间轴长度。

c.创建名为“所有下落物”的影片剪辑,在其编辑状态下制作逐帧动画,第1~4帧分别为“炸弹”、“蓝宝石”、“红宝石”、“钻石”的实例,如下所示:

④创建名为“下落”的影片剪辑

设置两个图层,分别命名为“Actions”、“下落物”。

“下落物”图层的操作:将影片剪辑“所有下落物”拖曳至其“下落物”图层第1帧的舞台上,并在该图层第3帧插入帧。选中“所有下落物”对象,在【属性】-【实例名称】命名为“allthings”。

“Actions”图层的操作:在该图层的前3帧,插入空白关键帧,分别输入以下代码:第1帧代码:

var plusScore; //声明变量plusScore

k = Math.random(); //k为0~1之间的随机数

if (k<0.5) { //如果随机数小于0.5

allthings.gotoAndStop(1); //设置的角色播放第1帧(炸弹)

plusScore = -6; //炸弹分数设为-6

} else if (k<0.7) { //如果随机数在0.5~0.7之间

allthings.gotoAndStop(2); //设置的角色播放第2帧(蓝宝石)

plusScore = 2; //蓝宝石分数设为2

}else if (k<0.9) { //如果随机数在0.7~0.9之间

allthings.gotoAndStop(3); //设置的角色播放第3帧(红宝石)

plusScore = 3; //蓝宝石分数设为3

}else { //如果随机数大于0.9

allthings.gotoAndStop(4); //设置的角色播放第4帧(钻石)

plusScore = 8; //钻石分数设为8

}

this._x = random(500)+50; //随机决定对象出现的x轴坐标

this._y = -40; //y坐标均为-40

speed = 5+random(30);

第2帧代码:

this._y += speed; //对象y的坐标布顿增加,增量即速度

if (this._y>400) { //如果y坐标大于400,则表示已经跑出舞台

this.removeMovieClip(); //删除该影片剪辑

}else if (this._y<=350 && this._y+speed>=350) { //如果y小于350且下一次大于350 disX = Math.abs(this._x-_root.pen._x); //计算两个对象之间的距离

if (disX<60) { //如果距离小于60,表明接到了对象_root.score += plusScore; //总分加上接到的对象自身的分数this.removeMovieClip(); //然后删掉该对象

}

}

第3帧代码:

gotoAndPlay(_currentframe -1);

对名为“下落”的影片剪辑执行【链接】命令,在【链接属性】输入标识符“wuti”.

相关文档
最新文档