预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《二维动画课程设计》 课程设计报告 课程名称:二维动画课程设计 实验项目名称:基于AS3.0的游戏设计 院系:物理与电子信息学院 学号:090804006 姓名:廖伟民 班级:09数字媒体技术 日期:2011年1月 实验地点: 课程设计成绩: 实验指导教师签字: 基于AS3.0的游戏设计 序言 1课程设计目标 二维动画课程设计旨在教授学生基本的设计原理和思路,并能发挥学生的个人创意能力,运用Flash软件和一些常用辅助软件,设计制作flash动画作品,并特别强调学生的创新能力和动手能力。本课程设计要求学生在接受课堂理论知识学习之后,能熟练利用Flash软件制作相关的动画. 2、设计主题 1.基于AS3.0制作一个打飞机小游戏。 2.主要运用FlashCS4软件和PhotoShopCS3图片处理软件。 3、游戏简介 这是利用flashcs4基于AS3.0代码设计的一款简单的打飞机游戏,这款游戏借鉴了经典的打鸭子游戏的一些做法,再结合自己的一些想法设计出来的。用AdobeFlashPlayer打开游戏后,按开始键,我们会看到:敌机在空中来回飞行,按左右上下箭头键控制飞机炮在空中左右上下移动,按下空格键发射子弹,击中敌机后,敌机爆炸。当被敌机碰到后,飞机爆炸,游戏结束,或是当击落的敌机达到100架后,游戏结束。 界面元素如下 游戏界面中的三个文本框分别为:得分:记录击中的敌机数; 剩余子弹:记录子弹的数量; 级别:记录游戏的难度等级,总9级,级别越高难度越大。 二、游戏结构 1、游戏运行过程图: 2、全部文件及作用图:游戏文件 AirRaid.fla主文件,程序界面及元件,绑定了文档类AirRaid.as。 AirRaid.as文档类,程序的入口,控制整个程序的逻辑顺序,逻辑结构关系。 AAGun.as绑定库中的火炮的类,控制火炮 AirPlane.as绑定库中的敌机的类,控制飞机 Bullet.as绑定库中的子弹的类,控制子弹 3、游戏中各图层名称及作用 游戏中的主文件AirRaid.fla文件,分为7个图层4帧,帧上有代码,绑定了文档类 AirRaid.as。 1、背景2层:一下雨时候的海面的上空。 2、背景层:在第二帧游戏开始时显示下雨效果。 3、成绩显示层:得分:动态文本,实例名showScore; 剩余子弹:动态文本,实例名showShots; 级别:动态文本,实例名称showjb。 4、按钮及提示层:第1帧:开始按钮及说明,按钮实例名:startButton。 第3帧:重新开始按钮及结束提示,按钮实例名playAgainButton。 第4帧:重新开始按钮及结束提示,按钮实例名playAgain。 5、as(代码)层:4帧每帧都有代码,具体代码将在下面解释。 6、背景音乐层:在游戏开始时播放背景音乐。 7、标签层:第1帧:标签名称intro;第2帧:标签名称play; 第3帧:标签名称gameover;第4帧:标签名称gamewin。 三、设计步骤 1、制作游戏必须的素材和准备工作 首先按前面游戏结构中说明的那样,建好五个文件分别为:AirRaid.fla、AirRaid.as、 AAGun.as、AirPlane.as、Bullet.as。AirRaid.fla文件与文档类AirRaid.as绑定,在AirRaid.fla文件 中新建9个影片剪辑分别为: AAgun:在里面制作飞机炮并将类名命名为AAgun,与外面的AAgun.as绑定。 Airplane:1-5帧每帧一个飞机图形。第6-9帧爆炸图形并添加爆炸声音,有标签:explode 第10帧有代码parent.removeChild(this);stop();(解释:parent是父容器 this是自身removeChild是移除。这句代码的意思是通知父容器把它从显示界面移除。就是说当子弹击中敌机,敌机播放爆炸效果。播放到第10帧时,就通知它的父容器把它从屏幕上移除。),类名为Airplane。 bullet:绘制子弹,类名为bullet。 yudi:制作下雨动画;先制作好一个雨滴,将类名命名为yd_mc,在代码层写 varbl; varsj:Timer=newTimer(Math.random()*500+500,10); sj.addEventListener(TimerEvent.TIMER,sjcd); sj.start(); functionsjcd(event:TimerEvent){ for(varb=0;b<5;b++){ varyd:yd_mc=newyd_mc(); addChildAt(yd,bl); yd.x=Math.random()*550; yd.y=Math.random()