基于Flash的俄罗斯方块毕业论文

上传人:仙*** 文档编号:149270960 上传时间:2022-09-06 格式:DOC 页数:31 大小:416KB
收藏 版权申诉 举报 下载
基于Flash的俄罗斯方块毕业论文_第1页
第1页 / 共31页
基于Flash的俄罗斯方块毕业论文_第2页
第2页 / 共31页
基于Flash的俄罗斯方块毕业论文_第3页
第3页 / 共31页
资源描述:

《基于Flash的俄罗斯方块毕业论文》由会员分享,可在线阅读,更多相关《基于Flash的俄罗斯方块毕业论文(31页珍藏版)》请在装配图网上搜索。

1、石家庄科技信息职业学院毕 业 论 文题目: 基于Flash的俄罗斯方块 学 号: 090124002 姓 名: 蒋雨乘 专业班级:软件技术(游戏方向)09-24 班指导教师: 刘永伟 完成日期: 2011-12-18 基于FLASH的俄罗斯方块摘 要:Flash是美国的一家公司(MACROMEDIA公司)于1996年6月推出的优秀网页动画设计软件, 在中国经历了9年的发展时间。曾经在中国风云一时,出现了FALSH热。由于动漫也成为一种时尚的艺术,而且最直接简单的动画创作是就FLASH。我认为它可以自成体系,有它自己独特的表现方法.手段和流通方式及“闪客”生活。甚至我认为它是现代文明的一种符号,

2、新新艺术创作方式,是一种流行于网络的网络文化。FLASH作为新的事物它的应用非常广泛,主要用于网络,FLASH网站片头,FLASH演示动画,FLASH网站,FLASH商业广告,电视,掌上电脑,游戏,MTV,手机屏保,手机彩信,家用电器等等!这些表示FLASH的确是一个非常好的传播载体。它能够引申出非常多的商业机会。能够以多样的效果和形式来充分体现产品或企业形象。现在电脑,网络,手机用户等等都是在不断的增加,网络的发展壮大和完美,电脑更加普及,上网的人更多。正因为它有怎么多的用户,爱好者,创作者和发展平台,使用价值和欣赏价值。我认为FLASH真正的价值是其未来!它是一种新新事物,是一种新的艺术创

3、作和文化。本文将介绍如何利用FLASH设计和开发俄罗斯方块游戏。关键词:FLASH;发展;游戏;应用;目录第一章 引言 41.1 Flash概述 41.2 FLASH发展 41.3 Flash的特点 6第二章 FLASH版俄罗斯方块游戏开发前期工作 72.1 FLASH程序界面介绍 72.2 FLASH程序常用快捷键介绍 102.3初识Action Script 122.4 Photoshop基本概念知识 132.5 FLASH版俄罗斯方块设计思路 15第三章 FLASH版俄罗斯方块游戏开发 163.1 俄罗斯方块游戏背景设计 163.2 俄罗斯方块游戏方块形状设计 183.3 俄罗斯方块游戏

4、操作设计 23第四章 FLASH版俄罗斯方块游戏开发心得 31参考文献 31第一章 引言1.1 Flash概述 Flash由macromedia公司推出的交互式矢量图和Web动画的标准。网页设计者使用Flash创作出既漂亮又可改变尺寸的导航界面以及其他奇特的效果。 flash涉及到的领域:动画游戏制作,网络构件,学习课件,网站广告设计及全flash网站,工控界面等等。主要特点是制作简单,通用性比较大,涉及的领域多,制作出的东西效果都可以做到非常精致。缺点在于有些效果需要别的软件辅助制作等等,不是所有效果都能制作出来。(比如些3d效果,flash就很难制作,只能通过导入的方式或者帧并帧的方式)

5、FLASH有三重意义:1)FLASH英文本意为“闪光”;2)它是全球流行的电脑动画设计软件;3)它代表用上述软件制作的流行于网络的动画作品。Flash是一种交互式矢量多媒体技术,他的前身是Futureplash,早期网上流行的矢量动画插件。后来由于Macromedia公司收购了FutureSplash以后便将其改名为Flash2,到现在最新的flashcs3。现在网上已经有成千上万个Flash站点,著名的如Macromedia专门ShockRave站点,全部采用了ShockwaveFlash和Director。可以说Flash已经渐渐成为交互式知量的标准,未来网页的一大主流。 本文将借助FLA

6、SH里的ActionScript来设计并完成游戏俄罗斯方块的开发。1.2 FLASH发展 Flash 最早期的版本称为Future Splash Animator,当时Future Splash Animator最大的两个用户是微软(Microsoft)和迪斯尼(Disney)。1996年11月,Future Splash Animator卖给了MM(M),同时改名为Flash1.0 。这里不得不提到的人物是乔纳森?盖伊(Jonathan Gay),是他和他的六人小组首先创造了Future Splash Animator,也就是现在Flash的真正前身了。Macromedia 公司在1997年

7、6月推出了Flash 2.0 ,1998年5月推出了Flash3.0。但是这些早期版本的Flash所使用的都是Shockwave 播放器。自 Flash 进入4.0 版以后,原来所使用的 Shockwave 播放器便仅供 Director 使用。Flash 4.0开始有了自己专用的播放器,称为“Flash Player”,但是为了保持向下相容性,Flash仍然沿用了原有的扩展名:.SWF(Shockwave Flash)。2000年8月Macromedia 推出了Flash5.0 ,它所支持的播放器为 Flash Player 5。Flash 5.0中的ActionScript已有了长足的进步

8、,并且开始了对XML和Smart Clip(智能影片剪辑)的支持。ActionScript的语法已经开始定位为发展成为一种完整的面向对象的语言,并且遵循ECMAScript的标准,就像javascript那样。1.3FLASH的发展方向 Flash被称为是“最为灵活的前台”,由于其独特的时间片段分割(TimeLine)和重组(MC嵌套)技术,结合ActionScitp的对象和流程控制,使得在灵活的界面设计和动画设计成为可能,同时它也是最为小巧的前台。Flash具有跨平台的特性(这点和Java一样),所以无论你处于何种平台,只要你安装了支持的Flash Player,就可以保证它们的最终显示效果

9、的一致,而不必像在以前的网页设计中那样为IE或NetSpace各设计一个版本。同Java一样,它有很强的可移植性。最新的Flash还具有的手机支持功能,可以让用户为自己的手机设计喜爱的功能。当然首先必需要有支持Flash的手机,同时它还可以应用于Pocket PC。那么,Flash可能的发展方向究竟如何?1、应用程序开发:由于其独特的跨平台特性、灵活的界面控制以及多媒体特性的使用,使得用Flash制作的应用程序具有很强的生命力。在与用户的交流方面具有其它任何方式都无可比拟的优势。当然,某些功能可能还要依赖于XML或者其它诸如javascript的客户端技术来实现。但目前的现状是:很少有人具有运

10、用Flash进行应用程序开发这方面的经验。但这个难度会随着时间的推移而逐步减弱。事实上,对于大型项目而言,使用Flash此时未免有些言之过早,因为它意味着很大的风险。当然,在最早的时间掌握和积累这方面的经验无疑是一种很大的竞争力。可以将这种技术运用在项目中的一小部分或者小型项目中,以减少开发的风险。2、软件系统界面开发:Flash对于界面元素的可控性和它所表达的效果无疑具有很大的诱惑。对于一个软件系统的界面,Flash所具有的特性完全可以为用户提供一个良好的接口。3、手机领域的开发:手机领域的开发将会对精确(像素级)的界面设计和CPU使用分布的操控能力有更高的要求,但同时也意味着更加更广泛的使

11、用空间。事实上手机和Pocket PC的分界已越来越不明显,开发者必须为每一款手机(或Pocket PC)设计一个不同的界面,因为它们的屏幕大小各有不同。当然软件的内核可能是相同的,所要注意的是各类手机CPU的计算能力和内存的大小。这无疑是些很苛刻的要求。4、游戏开发:事实上,Flash中的游戏开发已经进行了多年的尝试。但至今为止仍然停留在中、小型游戏的开发上。游戏开发的很大一部份都受限于它的CPU能力和大量代码的管理。不过可喜的是,Flash Player 7运行时性能提高了2至5倍;而且最新的Flash MX 2004 Professional提供了项目管理和代码维护方面的功能,Actio

12、nscript 2.0的发布也使得程序更加容易维护和开发。5、Web应用服务:其实很难界定Web应用服务的范围究竟有多大,它似乎它拥有无限的可能。随着网络的逐渐渗透,基于客户端-服务器的应用设计也开始逐渐受到欢迎,并且一度被誉为最具前景的方式。但是,这种方式开发者可能要花更多的时间在服务器后台处理能力和架构上,并且将它们与前台(Flash端)保持同步。6、站点建设:事实上,现在只有极少数人掌握了使用Flash建立全Flash站点的技术。因为它意味着更高的界面维护能力和开发者整站架构能力。但它带来的好处也异常明显:全面的控制;无缝的导向跳转;更丰富的媒体内容;更体贴用户的流畅交互;跨平台和瘦客户

13、端的支持;以及与其它Flash应用方案无缝连接集成等。7、多媒体娱乐:其实,在这个方面无需再说什么。尽管它的发展速度没有像当初预言的那样迅速,但它仍然还在不断前进。Flash本身就以多媒体和可交互性而广为推崇。它所带来亲切氛围相信每一位用户都会喜欢。flash影片的后缀名为 .swf ,该类型文件必须有flash播放器才能打开,但占用硬盘空间少,所以现在被广泛应用于游戏。1.3FLASH的特点 1.Flash动画受网络资源的制约一般比较短小,利用Flash制作的动画是矢量的,无论把它放大多少倍都不会失真。 2.Flash动画具有交互性优势,可以更好地满足所有用户的需要。它可以让欣赏者的动作成为

14、动画的一部分。用户可以通过点击、选择等动作,决定动画的运行过程和结果,这一点是传统动画所无法比拟的。 3. Flash动画可以放在网上供人欣赏和下载,由于使用的是矢量图技术,具有文件小、传输速度快、播放采用流式技术的特点,因此动画是边下载边播放,如果速度控制得好,则根本感觉不到文件的下载过程。所以Flash动画在网上被广泛传播。 4. Flash动画有崭新的视觉效果,比传统的动画更加轻易与灵巧,更加“酷”。不可否认,它已经成为一种新时代的艺术表现形式。 5.Flash动画制作的成本非常低,使用Flash制作的动画能够大大地减少人力、物力资源的消耗。同时,在制作时间上也会大大减少。 6.Flas

15、h动画在制作完成后,可以把生成的文件设置成带保护的格式,这样维护了设计者的版权利益。第二章 FLASH版俄罗斯方块游戏开发前期工作2.1 FLASH程序界面介绍 在使用Flash 8.0制作俄罗斯方块游戏之前我们首先来认识一下它的界面。我们在制作时需要新建一个FLASH文档,就要打开新建文档界面,如图1所示。在我们新建好空的flash文档后我们就能看见flash的基本工作台,如图2所示,今后我们的设计和开发将在工作台上进行。Flash 8的工作窗口由标题栏、菜单栏、主要工具栏、文档选项卡、编辑栏、时间轴、舞台工作区、工具箱以及各种面板组成。而主菜单命令有:文件、编辑、视图、插入、修改、文本、命

16、令、控制、窗口和帮助等。在工作台中间的上方为时间轴,时间轴是用于组织和控制文档内容在一定时间内播放的图层数和帧数。时间轴的主要组件是图层、帧和播放头。文档中的图层列在时间轴左侧的列中。每个图层中包含的帧显示在该图层名右侧的一行中。时间轴顶部的时间轴标题指示帧编号。播放头指示当前在舞台中显示的帧。播放Flash文档时,播放头从左向右通过时间轴。当时间轴状态显示在时间轴的底部,它指示所选的帧编号、当前帧频以及到当前帧为止的运行时间 ,时间轴左侧是图层,图层就像堆叠在一起的多张幻灯胶片一样,在舞台上一层层地向上叠加。如果上面一个图层上没有内容,那么就可以透过它看到下面的图层。 Flash中有普通层、

17、引导层、遮罩层和被遮罩层4种图层类型,为了便于图层的管理,用户还可以使用图层文件夹。如图3所示。时间轴下方是舞台,舞台就是我们所说的工作区,Flash 8扩展了舞台的工作区,可以在上面存储更多的项目。舞台是放置动画内容的矩形区域,这些内容可以是矢量图、文本框、按钮、导入的位图图形或视频剪辑等,只有放置舞台工作区的对象才能作为影片输出或打印。如图4所示。 图1 建立文档界面 图2 FLASH的基本工作环境 图3 时间轴界面2.2 FLASH程序快捷键介绍 在我们开发游戏之前先介绍一下FLASH程序有哪些快捷以便于我们能够更好更快的开发我们的游戏。常见快捷键如下:1.工具 箭头工具 【V】 部分选

18、取工具 【A】 线条工具 【N】 套索工具 【L】 钢笔工具 【P】 文本工具 【T】 椭圆工具 【O】 矩形工具 【R】 铅笔工具 【Y】 画笔工具 【B】 任意变形工具 【Q】 填充变形工具 【F】 墨水瓶工具 【S】 颜料桶工具 【K】 滴管工具 【I】 橡皮擦工具 【E】 手形工具 【H】 缩放工具 【Z】,【M】 2. 菜单命令 新建FLASH文件 【Ctrl】+【N】 打开FLA文件 【Ctrl】+【O】 作为库打开 【Ctrl】+【Shift】+【O】 关闭 【Ctrl】+【W】 保存 【Ctrl】+【S】 另存为 【Ctrl】+【Shift】+【S】 导入 【Ctrl】+【R】

19、 导出影片 【Ctrl】+【Shift】+【Alt】+【S】 发布设置 【Ctrl】+【Shift】+【F12】 发布预览 【Ctrl】+【F12】 发布 【Shift】+【F12】 打印 【Ctrl】+【P】 退出FLASH 【Ctrl】+【Q】 撤消命令 【Ctrl】+【Z】 剪切到剪贴板 【Ctrl】+【X】 拷贝到剪贴板 【Ctrl】+【C】 粘贴剪贴板内容 【Ctrl】+【V】 粘贴到当前位置 【Ctrl】+【Shift】+【V】 清除 【退格】 复制所选内容 【Ctrl】+【D】 全部选取 【Ctrl】+【A】 取消全选 【Ctrl】+【Shift】+【A】 剪切帧 【Ctrl】+

20、【Alt】+【X】 拷贝帧 【Ctrl】+【Alt】+【C】 粘贴帧 【Ctrl】+【Alt】+【V】 清除贴 【Alt】+【退格】 选择所有帧 【Ctrl】+【Alt】+【A】 编辑元件 【Ctrl】+【E】 首选参数 【Ctrl】+【U】 转到第一个 【HOME】 转到前一个 【PGUP】 转到下一个 【PGDN】 转到最后一个 【END】 放大视图 【Ctrl】+【+】 缩小视图 【Ctrl】+【-】 100%显示 【Ctrl】+【1】 缩放到帧大小 【Ctrl】+【2】 全部显示 【Ctrl】+【3】 按轮廓显示 【Ctrl】+【Shift】+【Alt】+【O】 高速显示 【Ctrl】

21、+【Shift】+【Alt】+【F】 消除锯齿显示 【Ctrl】+【Shift】+【Alt】+【A】 消除文字锯齿 【Ctrl】+【Shift】+【Alt】+【T】 显示隐藏时间轴 【Ctrl】+【Alt】+【T】 显示隐藏工作区以外部分 【Ctrl】+【Shift】+【W】 显示隐藏标尺 【Ctrl】+【Shift】+【Alt】+【R】 2.3初识ActionScript1.简介ActionScript 是针对 Adobe Flash Player 运行时环境的编程语言,它在 Flash 内容和应用程序中实现了交互性、数据处理以及其它许多功能。ActionScript 是由 Flash Pl

22、ayer 中的 ActionScript 虚拟机 (AVM) 来执行的。ActionScript 代码通常被编译器编译成字节码格式(一种由计算机编写且能够为计算机所理解的编程语言),如 Adobe Flash CS3 Professional 或 Adobe® Flex? Builder? 的内置编译器或 Adobe® Flex? SDK 和 Flex? Data Services 中提供的编译器。字节码嵌入 SWF 文件中,SWF 文件由运行时环境 Flash Player 执行。ActionScript 3.0 提供了可靠的编程模型,具备面向对象编程的基本知识的开发人员对此

23、模型会感到似曾相识。ActionScript 3.0 中的一些主要功能包括:一个新增的 ActionScript 虚拟机,称为 AVM2,它使用全新的字节码指令集,可使性能显著提高一个更为先进的编译器代码库,它更为严格地遵循 ECMAScript (ECMA 262) 标准,并且相对于早期的编译器版本,可执行更深入的优化一个扩展并改进的应用程序编程接口 (API),拥有对对象的低级控制和真正意义上的面向对象的模型一种基于即将发布的 ECMAScript (ECMA-262) 第 4 版草案语言规范的核心语言一个基于 ECMAScript for XML (E4X) 规范(ECMA-357 第

24、2 版)的 XML API。E4X 是 ECMAScript 的一种语言扩展,它将 XML 添加为语言的本机数据类型。一个基于文档对象模型 (DOM) 第 3 级事件规范的事件模型2.ActionScript 3.0 的优点ActionScript 3.0 的脚本编写功能超越了 ActionScript 的早期版本。它旨在方便创建拥有大型数据集和面向对象的可重用代码库的高度复杂应用程序。虽然 ActionScript 3.0 对于在 Adobe Flash Player 9 中运行的内容并不是必需的,但它使用新型的虚拟机 AVM2 实现了性能的改善。ActionScript 3.0 代码的执行

25、速度可以比旧式 ActionScript 代码快 10 倍。旧版本的 ActionScript 虚拟机 AVM1 执行 ActionScript 1.0 和 ActionScript 2.0 代码。为了向后兼容现有内容和旧内容,Flash Player 9 支持 AVM1。ActionScript 3.0 中的新增功能虽然 ActionScript 3.0 包含 ActionScript 编程人员所熟悉的许多类和功能,但 ActionScript 3.0 在架构和概念上是区别于早期的 ActionScript 版本的。ActionScript 3.0 中的改进部分包括新增的核心语言功能,以及能

26、够更好地控制低级对象的改进 Flash Player API.2.4 Photoshop基本概念知识 Photoshop:它是由Adobe公司开发的图形处理系列软件之一,主要应用于在图像处理、广告设计的一个电脑软件。最先它只是在Apple机(MAC)上使用,后来也开发出了for window的版本。下面是这个软件里一些基本的概念。位图:又称光栅图,一般用于照片品质的图像处理,是由许多像小方块一样的像素组成的图形。由其位置与颜色值表示,能表现出颜色阴影的变化。在Photoshop主要用于处理位图。矢量图:通常无法提供生成照片的图像物性,一般用于工程技术绘图。如灯光的质量效果很难在一幅矢量图表现出

27、来。分辨率:每单位长度上的像素叫做图像的分辨率,简单讲即是电脑的图像给读者自己观看的清晰与模糊,分辨率有很多种。如屏幕分辨率,扫描仪的分辨率,打印分辨率。图像尺寸与图像大小及分辨率的关系:如图像尺寸大,分辨率大,文件较大,所占内存大,电脑处理速度会慢,相反,任意一个因素减少,处理速度都会加快。通道:在PS中,通道是指色彩的范围,一般情况下,一种基本色为一个通道。如RGB颜色,R为红色,所以R通道的范围为红色,G为绿色,B为蓝色。图层:在PS中,一般多是用到多个图层制作每一层好象是一张透明纸,叠放在一起就是一个完整的图像。对每一图层进行修改处理,对其它的图层不含造成任何的影响。图像的色彩模式:1

28、)RGB彩色模式:又叫加色模式,是屏幕显示的最佳颜色,由红、绿、蓝三种颜色组成,每一种颜色可以有0-255的亮度变化。2)CMYK彩色模式:由品蓝,品红,品黄和黑色组成,又叫减色模式。一般打印输出及印刷都是这种模式,所以打印图片一般都采用CMYK模式。3)HSB彩色模式:是将色彩分解为色调,饱和度及亮度通过调整色调,饱和度及亮度得到颜色和变化。4)Lab彩色模式:这种模式通过一个光强和两个色调来描述一个色调叫a,另一个色调叫b。它主要影响着色调的明暗。一般RGB转换成CMYK都先经Lab的转换。5)索引颜色:这种颜色下图像像素用一个字节表示它最多包含有256色的色表储存并索引其所用的颜色,它图

29、像质量不高,占空间较少。6)灰度模式:即只用黑色和白色显示图像,像素0值为黑色,像素255为白色。7)位图模式:像素不是由字节表示,而是由二进制表示,即黑色和白色由二进制表示,从而占磁盘空间最小。2.5 FLASH版俄罗斯方块设计思路 首先我们利用photoshop制作和处理一张图片作为我们游戏的背景图片,制作好后,打开FLASH软件新建FLASH文档,文档建立好后,将制作好的背景图片导入到舞台,作为游戏的背景,最后也是最重要ActionScript代码的设计和开发。代码设计中我们首先进行游戏的界面设计,我们需要将游戏界面分为两部分,一部分是游戏方块叠加部分,一部分是游戏的分数部分,界面设计好

30、后进行俄罗斯方块游戏中方块形状的设计和定义以及游戏在运行过程中方块的叠加和消行加分设计,然后我们设计和开发游戏的初识状态及游戏运行过程中用户对方块的变形和移动操作。第三章 FLASH版俄罗斯方块游戏开发3.1 俄罗斯方块游戏界面设计 游戏界面是用户能够直接看到的部分,也是最直观的部分。我们首先先建一个空白的FLASH文档,文档建立好后我们将制作好的图片导入到舞台中央作为游戏的背景,然后在帧1处利用ActionScript进行游戏的界面设计,具体的代码如下:N = 20;/行数WIDTH = 20;/方块边长level = 0;/开始等级(下落速度)ret = new Array();/当前出现

31、的方块nextret = new Array();/下一个出现的方块bg = new Array();/背景数组createEmptyMovieClip(panel, 1048575);/所有方块都在此mc里for (i=0; i5; i+) /初始化方块数组,2*5格式,前四行代表每个方块的4个小块的位置坐标,最后一行第一列是方块形状,第二列是方块旋转方向 ret.push(new Array(2); nextret.push(new Array(2);for (i=0; i20; i+) /初始化背景数组,10*20格式 bg.push(new Array(10);X = Y=panel.

32、_x=panel._y=0;/换为X、Y表示function reach(x:Number, y:Number, ret:Object) /x、y为方块位置,ret为方块形状,若方块ret下落一格碰到边界或者方块返回1 var i:Number, j:Number, k:Number; for (i=0; iN; i+) for (j=0; j10; j+) if (bgij = 219) for (k=0; k4; k+) if (x+retk0 = j & y+retk1+1 = i) return 1; return 0;3.2 俄罗斯方块游戏方块形状设计 在俄罗斯方块游戏中方块的形状是

33、使用者直接可以看到的,在俄罗斯方块游戏中一共有7种形状,分别是方形、长形,Z形,反Z形,T形,L形,反L形。实现这7种形状的具体代码如下:function rv(a:Object, ret:Object) /方块赋值,将a方块赋值到ret方块 var i:Number; for (i=0; i5; i+) reti0=ai0, reti1=ai1; function rotate(ret:Object) /根据方块ret最后一行(分别是形状指示变量和旋转方向变量)为ret的前四行赋以具体形状值 switch (ret40) case 0 : /方形 a = 1, 0, 2, 0, 1, 1,

34、2, 1, 0, 0; rv(a, ret); return; case 1 : /长形 switch (ret41) case 1 : a = 0, 0, 1, 0, 2, 0, 3, 0, 1, 0; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 0 : a = 1, 0, 1, 1, 1, 2, 1, 3, 1, 1; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 2 : /Z形 switch (ret41) case 1 :

35、 a = 0, 1, 1, 1, 1, 2, 2, 2, 2, 0; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 0 : a = 2, 0, 1, 1, 2, 1, 1, 2, 2, 1; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 3 : /反Z形 switch (ret41) case 1 : a = 1, 1, 2, 1, 0, 2, 1, 2, 3, 0; if (lrnotout(0, a) & !reach(x, y

36、-1, a) rv(a, ret); return; case 0 : a = 1, 0, 1, 1, 2, 1, 2, 2, 3, 1; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 4 : /T形 switch (ret41) case 3 : a = 1, 0, 0, 1, 1, 1, 2, 1, 4, 0; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 0 : a = 1, 0, 0, 1, 1, 1, 1, 2, 4, 1

37、; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 1 : a = 0, 1, 1, 1, 2, 1, 1, 2, 4, 2; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 2 : a = 1, 0, 1, 1, 2, 1, 1, 2, 4, 3; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 5 : /倒L形 switch (ret41) case 3

38、 : a = 1, 0, 2, 0, 1, 1, 1, 2, 5, 0; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 0 : a = 0, 1, 0, 2, 1, 2, 2, 2, 5, 1; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 1 : a = 2, 0, 2, 1, 1, 2, 2, 2, 5, 2; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return;

39、case 2 : a = 0, 1, 1, 1, 2, 1, 2, 2, 5, 3; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 6 : /L形 switch (ret41) case 3 : a = 1, 0, 2, 0, 2, 1, 2, 2, 5, 0; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 0 : a = 0, 1, 1, 1, 2, 1, 0, 2, 5, 1; if (lrnotout(0, a) & !rea

40、ch(x, y-1, a) rv(a, ret); return; case 1 : a = 1, 0, 1, 1, 1, 2, 2, 2, 5, 2; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; case 2 : a = 2, 1, 0, 2, 1, 2, 2, 2, 5, 3; if (lrnotout(0, a) & !reach(x, y-1, a) rv(a, ret); return; 3.3 俄罗斯方块游戏操作设计 俄罗斯方块游戏之所以流行是因为它简单的界面和操作,游戏过程中我们只要通过电脑上的方向键就可以

41、进行游戏,具体实现该功能的代码如下:function key() if (Key.isDown(Key.UP) rotate(ret); display(); if (Key.isDown(Key.LEFT) if (lrnotout(-1, ret) /左移可行性判断 x-; display(); if (Key.isDown(Key.RIGHT) if (lrnotout(1, ret) /右移可行性判断 x+; display(); if (Key.isDown(Key.DOWN) /键盘控制下落 go(); if (Key.isDown(Key.SPACE) /一键下落到底 while

42、 (!reach(x, y, ret) y+; go(); if (Key.isDown(82) /重新开始游戏 init(); init();/初始化setInterval(key, 80);/每个80毫秒执行一次键盘事件函数createTextField(hinttxt, 33324, 200, 20, 300, 50);3.4 俄罗斯方块游戏运行后台设计 玩过俄罗斯方块游戏的都知道,方块从上面随机的产生,我们可以利用方向键改变方块的形状和位置,而方块的移动也不是无界的,当方块移动到游戏区边界时方块将无法移动,具体的设计代码如下:function generate(ret:Object)

43、/随机产生方块函数(可进一步修正) ret40 = Math.floor(Math.random()*7); ret41 = Math.floor(Math.random()*4); rotate(ret); /完成方块ret的具体形状的赋值function init() /初始化背景、方块、运动函数 var i:Number, j:Number; for (i=0; iN; i+) /初始化背景,边界为219,其余为 for (j=0; j10; j+) if (i = N-1) bgij = 219; else bgij = ; for (i=0; i5; i+) /为当前方块赋初值0 r

44、eti0 = reti1=0; generate(ret); /产生当前方块 generate(nextret); /产生下一个方块 y=0, x=3, score=lines=0, level=0; /当前位置坐标和计分系统初始化 _tetris.removeTextField(); /如果从结束过的游戏恢复,删除结束标志 display(); /显示画面 frameflag = 0; /标示下落时间间隔 onEnterFrame = function () frameflag+; if (10-frameflaglevel) /根据等级level确定下落时间间隔 frameflag = 0

45、; go(); /下落及判断 ;function drawblock(a, b, c, d) /绘制方块的小块 with (panel) beginFill(0x000FFF, 100); lineStyle(1, 0xFF00FF); moveTo(panel._x+a, panel._y+b); lineTo(panel._x+c, panel._y+b); lineTo(panel._x+c, panel._y+d); lineTo(panel._x+a, panel._y+d); lineTo(panel._x+a, panel._y+b); endFill(); function e

46、rase() /删除一行方块 var n:Number = 0, i:Number, j:Number, k:Number, l:Number; for (i=0; iN-1; i+) for (j=0; j=1; k-) /上方方块下落 for (l=0; l10; l+) bgkl = bgk-1l; for (l=0; l10; l+) /删除该行 bg0l = ; n+; /此次删除行数变量增一 if (lines+n)%30 = 0) /删除行数总数到30的倍数则等级上升 level = (level+1)%10; lines += n, score += (n*n+n)*50; /

47、总行数增n,计算得分function display() /显示函数,采用全部清除再重绘制的方法 var i:Number, j:Number; panel.clear(); with (panel) /画边界 lineStyle(1, 0x0000FF); moveTo(panel._x, panel._y); lineTo(panel._x+WIDTH*10, panel._y); lineTo(panel._x+WIDTH*10, panel._y+WIDTH*(N-1); lineTo(panel._x, panel._y+WIDTH*(N-1); lineTo(panel._x, p

48、anel._y); for (i=0; i4; i+) /当前方块占据的地方赋值为边界类型219 bgy+reti1x+reti0 = 219; for (i=0; iN-1; i+) /绘制背景方块 for (j=0; j10; j+) if (bgij = 219) drawblock(j*WIDTH+X, i*WIDTH+Y, j*WIDTH+WIDTH+X, i*WIDTH+WIDTH+Y); for (i=0; i4; i+) /绘制当前方块 drawblock(nextreti0*WIDTH+14*WIDTH+X, nextreti1*WIDTH+12*WIDTH+Y, nextr

49、eti0*WIDTH+WIDTH+14*WIDTH+X, nextreti1*WIDTH+WIDTH+12*WIDTH+Y); for (i=0; i4; i+) /当前方块绘制完毕,重新将当前位置改为 bgy+reti1x+reti0 = ; createTextField(_lvltxt, 1, 270, 100, 100, 20); /绘制计分系统 createTextField(_scrtxt, 2, 270, 130, 100, 20); createTextField(_lnstxt, 3, 270, 160, 100, 20); _lvltxt.text = Level: +le

50、vel; _scrtxt.text = Score: +score; _lnstxt.text = Lines: +lines;function go() /下落函数 var sss:Number = reach(x, y, ret); /当前方块下落一格是否碰到边界或方块 var ii:Number; if (!sss) y+; /如果当前方块下落一格没有碰到边界或方块则下落一格 display(); /重新绘制 if (sss) /碰到边界或方块 display(); /重新绘制 for (ii=0; ii4; ii+) /修改背景数组,将当前方块的位置改为边界类型 bgy+retii1x

51、+retii0 = 219; erase(); /删除行判断及执行 rv(nextret, ret); /将下一个方块赋值为当前方块 y=0, x=3; /重置方块位置 generate(nextret); /生成下一个方块 display(); /重新绘制 if (reach(x, y, ret) /如果下一格碰到方块则游戏结束 createTextField(_tetris, 100000, WIDTH*3.3, WIDTH*N/3, 70, 20); _tetris._x += 200; _tetris._y += 50; _tetris._xscale = 300; _tetris._

52、yscale = 300; _tetris.background = true; _tetris.text = Game Over!; onEnterFrame = function () /停止下落 ; function key() if (Key.isDown(Key.UP) rotate(ret); display(); if (Key.isDown(Key.LEFT) if (lrnotout(-1, ret) /左移可行性判断 x-; display(); if (Key.isDown(Key.RIGHT) if (lrnotout(1, ret) /右移可行性判断 x+; disp

53、lay(); 第四章 FLASH版俄罗斯方块游戏开发心得 通过FLASH版俄罗斯方块游戏设计,我不仅复习熟练了相关的课程、专业,还学习掌握了很多以前不曾掌握的知识,同时也认识到还有很多基础知识要去学习,去巩固。在以后的时间里,我将花费大量的时间用于学习上,以弥补自己不足的地方。参考文献1 陈青,Flash 2004标准案例教材.人民有点出版社,2006.2 瑞哈特(美),曹铭。Flash宝典,电子工业出版社,2003.3 赵子江,变形动画制作教程.北京:机械工业出版社,2000.4 美国Adobe公司,Adobe Flash CS4 ActionScript 3.0中文版经典教程.人民邮电出版社2009.5 马谧挺, 闪魂Flash CS4完美入门与案例精解.清华大学出版社,2009.6 吴涛,Flash MX2004 ActionScript动画设计. 北京科海电子出版社,20057 Adobe专家委员会,Adobe Flash CS3案例风暴. 人民邮电出版社,200831

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!