FLASH页面游戏课程设计报告

时间:2024.4.21

 FLASH页面游戏课程设计报告

第一章 绪论

1.1 课题背景意义

 随着社会的不断发展,人们的生活水平在不断地提高,网络游戏也越来越多的融入到人们的生活中去,游戏的出现,带来了网络上的优势,扩宽了人们平时玩的传统游戏的界限,给人们带来了不一样的感受,在现在的游戏中,flash游戏随着它绚丽的动画,震撼的视觉与听觉效果,精湛的画面以及简单的操作性,在青少年中尤为青睐。现在,越来越多的人都会发一部分的时间在游戏上,在我空余之季的同时,也会打开电脑,玩会游戏,并不是一天天下来的习惯,而是,在忙碌了一天之后,可以忘却工作的烦恼,忘却他人的唠叨,进入到一个神奇美丽的游戏世界中,去放松自己,尽情地感受游戏给你带来的快乐。

在如今的社会,人们的生活节奏在加快,人们也越来越信息化,数字化,多元化。越来越多的游戏开发商介入到其中,人们认真的去思考游戏的设计和经营方法,想要归纳出游戏的理论基础。小游戏指的是操作简单、体积小的游戏,通常都是以休闲、益智、经营为主,有单机版的、有网页版的,它们大多都是flash格式。如超级玛丽、植物大战僵尸、愤怒的小鸟等。这些游戏安装简单,可玩性较强,没有太高的依赖性,所以很受人们的喜爱。这些游戏针对各个年龄段进行了设计,占据了很大的市场份额。

采用了cs6[S1] 技术,配合使用MySQL数据库管理系统,对这个游戏进行开发和设计,将这个游戏的界面进行不断的完善,对数据进行存储和管理。针对人物的形象也一步步的进行调整,让人物可以在游戏中流畅的奔跑。

1.2 研究现状和发展趋势

1.2.1 发展现状

  网页小游戏在如今的社会中市场潜力很大,已经成为我国游戏产业中最具活力的一部分。与其他网游相比拥有着强大的优势,与这些网游相比,网页小游戏具有成本小,开发时间短,技术低和维护费用小等优点,这些对于刚刚涉足这个行业的中小型公司来说是非常具有吸引力的。这些小游戏不用去下载客户端,只要通过网页直接浏览就可以玩游戏了,而且只需要通过简单的几个按钮就能完成操作。和网游相比,网页小游戏即使不用花费太多的时间也能取得很大的成长等特点。这些小游戏非常适合办公室一族和大学生一族,他们可以很轻松的享受游戏带给他们的乐趣,这一部分的用户大多都具备了一定的经济能力和消费观,因此在市场中的潜力是相对而言较大的。因为标准,所以用户很容易开发这种游戏。所以每周都会产生好几百个游戏,对于用户的大胆创新,内容可以无穷丰富,游戏也可以影响全球。

  在现如今的flash游戏发展中,flash8.0是现在最新版本的技术,也是最流行的。它利用制作动画的尺寸比位图动画要小的多,开发者不仅可以在其中增添声音、视频、图像,还能够制作交互式影片或是网站。目前用的最多的是flash cs6,它可以自动保存你在制作动画的过程中所遇到的意外关机或是意外关闭。它的各项工具处理也比之前的版本更易调整。在界面上,更为简单,以深灰色为主,看上起更为舒服。

游戏也许在人们的印象中并不是一个很好的存在,特别是对于小孩子而言,但随着flash游戏的发展,人们对游戏产生了新的认识,玩游戏的人越来越多,flash游戏也变得越来越火。flash游戏虽然是简单地在线游戏,但是Adobe公司通过专业的制作,其制作效果并不亚于大型客户端的游戏。这些游戏体积小,一般只有十几兆,所以在网络上很容易传播,用户下载这些游戏也不需要花费太多的时间,通常这些游戏都是可以在线玩的,随便现在技术的不断发展,游戏平台的传播速度也在不断的加快。为将来的发展提供了重要的支持。其次,与大型客户端游戏相比,flash游戏一般都是免费的,免费的游戏才能让玩家感受到真正的娱乐,而并不是投入了钱才能有玩游戏的感受。这也是flash游戏能发展的这么好的一个重要原因。flash游戏还具有不易上瘾,具有开发益智等特点,相信在未来的道路上,flash游戏会发展的越来越好。

1.3 论文所做的工作

1.3.1 前期工作

在本次的课题中首先要做好的就是需求分析,为了了解这款游戏的需求以及怎么样去实现,需要去翻看大量的关于这个游戏的资料,构思好这个游戏用到哪些事物,比如背景选择什么样的,人物设计成怎样、然后还要去查找适合的图片,通过这样的计划,一步步地去完成各项工作,在这些基础上,后期还要做进一步的完善,比如,增加一些功能如排行榜,然后还要对排行榜中的数据进行排序。

1.4 本文的组织结构

本文的组织结构如下:

第一章介绍了系统的研究背景意义,阐述了这款游戏主要的工作,还有它的现状以及趋势,对系统功能进行了分析。

第二章介绍了系统开发的环境,分别对ActionScript3.0、Adobe Flash Professional CS6、MySQL、以及PHP技术的介绍。同时也介绍了CS6的环境安装步骤。

第三章介绍了系统的设计与分析,对系统进行需求分析,对整个系统功能模块进行设计,并分析了整个功能的可行性。其次分析本次系统的结构,对其进行设计,代码的编写。对数据库中的对象也有一个大概的确立。并对其设计。

第四章系统具体功能的实现, 这一部分主要讲述了系统的完整编写顺序,对各个模块进行分析并给出相应的代码,然后把数据库的部分也展现了出来,对它进行具体的操作和实现。

第五章总结,具体讲述了在开发系统的过程所得到的收获以及系统整个的完成情况同,同时也对本次系统的不足之外进行了详细的分析。

第二章系统开发环境介绍

本欢乐重力跑酷游戏中运用了ActionScript3.0技术和Adobe Flash Professional CS6技术来实现的,数据库采用了MySQL。PHP技术只用于连接游戏和数据库。

2.1 ActionScript3.0

自从20##年ActionScript3.0推出之后,就成为了Flash的首要编程语言。最初版本的ActionScrip是在1996年随着Flash4的发布而推出的。那时它还不叫ActionScript,甚至都不能用来写代码,而只能从一个下拉菜单中选择语句。

20##年发布的Flash5有了很大的改进,并正式推出ActionScript1.0.该脚本语言包含很多其他基于网页的开发语言(如Macromedia Director的Lingo、Sun的Java)的特征。但它在运行速度和性能上都存在严重不足。

Flash MX 2004也称为Flash7,为人们带来了ActionScript2.0。这是一个性能更高的版本,它使面向对象编程变得简单。它非常接近ECMA脚本,即欧洲计算机制造商协会(European Computer Manufacturers Association)制定的标准化编程放言。用于浏览器的编程放言JavaScript也是基于ECMA脚本的。

ActionScript3.0 现在是为基于 Web 的应用程序提供更多的可能性。它进一步增强了这种语言,提供出色的性能,简化开发的过程,因此更适用于高度复杂的 Web应用程序以及大数据集。ActionScript3.0可以为以 Flash Player 作为目标的内容和应用程序提供高的性能和开发效率。

ActionScript3.0 符合 ECMA Script Language Specification 第三版。它还包含了基于 ECMA Script Edition 4 的功能,比如类、包和名称空间;可以选的静态类型;生成器和迭代器;以及非结构化赋值(destructuring assignments)。随着 Web应用程序项目需求的增长,也要求 ActionScript 引擎有重大的突破。ActionScript3.0 引入了一个新的高度优化的 ActionScript Virtual Machine(AVM2),与 AVM1 相比,AVM2 的性能有了显著的提高。这使ActionScript3.0 代码的执行速度几乎比以前的 ActionScript 代码快了 10 倍。Flash Player 9 中包含 AVM2(ActionScript 3.0 的脚本语言引擎),设计它的目的是提供互联网应用程序开发人员所需的性能和特性。为了向后兼容现有的内容,Flash Player 将继续支持 AVM1。

从 ActionScript 3.0 的一般特性开始,将讨论一下目标、语言特性和 Flash Player API 特性。还要讨论 ActionScript 3.0中的新特性和不太为人所知的特性。在 20## 年 11 月 7 日,在旧金山召开的 WEB 2.0 会议上,Adobe Systems 宣布将 ActionScript Virtual Machine 的源代码捐献给 Mozilla Foundation。Mozilla 启动了一个新的开放源码项目 Tamarin,其目的是促进这种创建 Web应用程序的标准化方法的开发。

2.2 Adobe Flash Professional CS6

Flash CS6是用来制作动画和多媒体的一个强大的创作平台。 Flash CS6设计设身处地,而且在台式机、平板电脑、智能手机和电视机等多种设备中都呈现出一致效果的互动体验。新版Flash Cs6拥有可以生成 sprite 表单、可以用来访问专用设备的本地扩展,还可以锁定最新的Flash Player 和 AIR 运行时以及iOS 和Android设备平台。Adobe Flash Professional CS6具有以下特点:

1、缩略了AIR SDK,Bridge CS6,多国语言,启动/升级系统组件。

2、使用SQLLite来准备地注册程序,为了以后安装其他Adobe程序做足准备。

3、能关联相关的文件。

4、程序不含任何第三方插件。保持纯净。

使用带本地扩展的 Flash CS6 软件可以生成 Sprite 、表单和访问专用设备 Flash CS6新增了以下功能:

1、生成 Sprite 表单
  导出元件和动画序列,快速生成 Sprite 表单,从而来协助改善游戏体验、工作流程和性能。

2、HTML 的新支持
  以 Flash 的核心动画和绘图功能作为基础,利用新的扩展功能来创建交互式 HTML 内容。导出 Javascript 来针对 CreateJS 开源架构进行开发。

3、广泛的平台和设备支持
  锁定最新的 Adobe Flash Player和 AIR 运行时,使您能针对 Android 和 iOS平台进行设计。

4、创建预先封装的 Adobe AIR 应用程序

  使用预先封装的 Adobe AIR captive 运行时创建和发布应用程序。简化应用程序的测试流程,使终端用户无需额外下载即可运行您的内容。

5、Adobe AIR 移动设备模拟

  模拟屏幕方向、触控手势和加速器等常用的移动设备来加速测试流程。

6、锁定 3D 场景

  使用直接模式作用在针对硬件加速的2D内容的开源 Starling Framework,来增强渲染效果。

7、可伸缩的工具箱

在Flash CS6里,所有工具窗口都是可以自由伸缩的,从而使画面更具有弹性。

2.3 MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。

与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。Linux作为操作系统,Apache和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件,因此使用这种方式不用花一分钱,就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“组合。MySQL的功能特点如下:

1、时处理几乎不限数量的用户;

2、多达50,000,000以上的记录;

3、执行速度快,也许是现今最快的;

4、有效的用户特权系统;

2.4 PHP简介

PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

PHP原始为Personal Home Page的缩写,已经更名为 "PHP: Hypertext Preprocessor"。这种将名称放到定义中的写法被称作递归缩写。PHP于1994年由Rasmus Lerdorf创建,刚刚开始是Rasmus Lerdorf 为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。后来又用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。

在1995年以Personal Home Page Tools 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档。在这的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性。比如循环语句和数组变量等等;在新的成员加入开发行列之后,Rasmus Lerdorf 在1995年6月8日将 PHP/FI 公开发布,希望可以透过社群来加速程序开发与寻找错误。这个发布的版本命名为 PHP 2,已经有 PHP 的一些雏型,像是类似 Perl 的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。程序语法上也类似 Perl,有较多的限制,不过更简单、更有弹性。PHP/FI加入了对MySQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI。

2.5系统运行环境安装

2.5.1 系统安装

大部分的工作是通过ActionScript完成的,但是我们需要了解一些与Adobe Flash Professional CS6时间轴、舞台及库的使用相关的术语和基本知识。首先我们需要通过官方网站来下载CS6的一个版本。

安装过程:找到你从网站上下载下来的文件的目录,在目录中,你会发现有一个名为QuickSetup.exe的文件。这是一个快速安装的文件。双击点开它。会出现快速安装的提示,只需要鼠标单击点击,等待它自动安装好即可。同时在桌面上也会出现CS6的快捷图标。

2.6 本章小结

本章依次介绍了ActionScript3.0、Adobe Flash Professional CS6技术、 MySQL数据库以及PHP技术。并且对这些技术给出了详细的介绍和安装步骤。

第三章 系统分析与设计

3.1系统需求分析

游戏就是为创造娱乐,休闲的一个存在,本游戏是一个简单的、易操作的游戏,用户可以通过游戏的帮助功能来理解这款游戏的玩法,还可以进入数据库对排行榜上的内容进行更改,在玩这款游戏的时候,跑的越远,分数就越高,所以我相信,玩家会沉浸在这个游戏之中的,小游戏不会玩上瘾,但是也要注意玩游戏的时间,不要沉迷其中。

在设计这个游戏的时候,首先要想到这个游戏的可玩性,失去了操作的乐趣,就失去了游戏的本质,其中涉及了游戏的速度,来锻炼人们的反应速度。动态的画面,好的节奏感,操作后的连动反应,都是设计一个游戏的关键。

游戏主要是有以下几个功能组成的:

1. 游戏前台主要需要实现5个功能:

1、游戏开始:告诉玩家从哪进入游戏

2、排行榜:玩家可以从这里看到自己的排名

3、帮助系统:告诉玩家如何玩这个游戏

4、退出系统

5、背景音乐

2. 游戏后台主要实现的功能:

    1、查看数据的基本信息

    2、对数据进行增加、删除、修改和查询

3.2系统功能模块设计

3.2.1 系统结构分析

重力跑酷系统整体架构 (如图3-1)

图3-1 游戏整体架构图

本游戏主要有四个功能:开始游戏、排行榜、帮助、退出和背景音乐的实现。整个系统分为两个模块,也就是前台和后台。前台主要展现的是这个游戏的主要玩法,在哪里玩。后台主要是对系统提供数据以及做好对数据的管理。

3.2.2 游戏前台主要模块

在游戏前台中,本系统主要实现,开始游戏、排行榜、帮助系统、退出系统和背景音乐。在这个模块中,需要对每个模块进行详细的分析,在开始游戏中,要对游戏定义事件类。在制作帮助系统的时候,用到了时间轴,使帮助界面由小到大渐变出来。在视觉效果上更加突出。在系统中还做了背景音乐,对于大部分的游戏来说,都是将音频文件导入到影片中去的。在库中点击鼠标右击将文件导入,选择Properties查看声音属性对话框。当运行影片的时候,会加载外部的音频文件,为游戏开始时,作好播放的准备。

游戏前台架构 (如图3-2)

图3-2 网站前台架构图

3.2.3 游戏后台主要模块

在后台数据库管理中,管理员可以对数据进行管理,包括增加、修改、删除、查询。在增加数据的时候,根据数据库表的要求,在字段前或后进行对数据添加,根据字段,为添加的数据定义它所属的类型,像距离,分数都是定义为整型。用户名用到了字母,所以要将其定义为字符型。考虑到每个人提交分数时,输入用户名的长短各有所不同,所以为用户名的类型尽量多分配一点空间。对数据库里的数据进行删除的时候,在操作部分,可以看到运行游戏后,所保存下来的数据,点击全选可以将数据删除。也可以点击数据前的复选框,对想要删除的数据删除。

游戏后台架构 (如图3-3)

                                                                                            

图3-3 网站后台架构图

3.2.4 系统流程图

当点击开始游戏的时候,玩家可以对人物进行上下键的控制,当遇到蜗牛的时候,游戏就结束了,没有遇到的时候,可以继续向前跑,累积更多的积分,当游戏结束后,你可以提交分数,提交完后你可以选择是返回游戏还是重新开始游戏。选择重新开始游戏,回到进入游戏界面。选择返回游戏,回到游戏主界面。系统流程图(如图3-4)

 

图3-4系统流程图

3.3 系统设计与实现

3.3.1 鼠标输入

在本系统中,需要对鼠标单击作出响应,但是,鼠标不仅仅是用来作为单击使用的,还要可以随时获得光标当前所处的位置。对光标是否停在按钮上方进行检测。对系统添加一个鼠标滑过事件的侦听器:this.addEventListener(MouseEvent.CLICK,mouseHandle);

在设计这个游戏时,很多按钮都需要通过鼠标的点击来实现所对应的操作,在设计开始按钮的时候,在时间轴上用到了三帧,第一帧是弹起,当玩家通过控制鼠标光标移动到开始的时候,开始字体会向上弹起。第二帧是鼠标指针点击的时候,弹起的开始字体会恢复到鼠标没移动到它之前的状态。第三帧是当鼠标按下去的时候,开始字体会闪烁一下。在本系统中,帮助按钮也同样的实现了这样的一个过程。

3.3.2 键盘控制

   基于键盘控制,主要是侦听两个事件:KEY_UP和KEY_DOWN。当用户按下键盘上的键时,需要触发KEY_DOWN。所以需要对事件进行侦听。在影片开始的时候,一定要由一个对象来侦听键盘事件,当方法通过侦听被调用的时候,会获得这个事件参数的属性,其中一个参数是keyCode,它返回的是被按下的键盘字母。它的值会被转化成字符,显示在文本字段中:

public function keyBoardFun(e:KeyboardEvent) { if(state == 0) return;switch(e.keyCode);}

    在游戏中,通常我们可以记录游戏中的几个重要的按键动作,比如方向键。在本系统中,最主要的操作就是由键盘方向键来实现的。

3.3.3 创建动画

在整个游戏的过程中,游戏人物会在背景层中进行奔跑,所以我们需要找一套跑动的循环图入,然后将它们按照顺序放入影片的剪辑中。。

在设计中,需要实现人物的九帧动画。第一帧只需要保存人物的站立姿势。然后对后面的每一帧都会使得人物发生不同的变化,首先要定义玩家的初始位置:wj = Main.me.getView("ren");wj.x = 220;wj.y = 100;state = 0;

TweenLite.to(wj, 0.3, {y:downY, onComplete: onFinishTween, onCompleteParams:[2]});

view2.addChild(wj);

3.3.4 碰撞检测

了解了在游戏中如何控制屏幕中的人物后,本文还需要要检测它们彼此之间是否会发生碰撞。在AS3.0中包含了两个系统碰撞检测函数。hitTestPoint()函数是用来检测某一个点的位置是不是在对象内。hitTestObject()函数是用来检测两个对象是不是重叠的。

在本系统中,我们先通过hitTestObject()函数来检测人物是否发生了碰撞。并对是否产生碰撞做出想对应的操作,如果在游戏过程中,遇到了碰撞,那么人物的生命就要减去一,并且对本次游戏的结果做一个统计,将数据返回到数据库中去。如果在游戏过程中,没有遇到碰撞,也就意味着说,人物在游戏过程中收集到了金币,那么需要将之前收集的数和现在的个数相计算,给出最新的数据。

3.3.5 封装游戏

    通常在玩游戏的时候,都会有游戏介绍界面、游戏界面和游戏结束界面等。甚至不同的游戏也会设计不同的游戏界面。Flash可以对游戏实现封装,可以在影片剪辑内对影片再进行嵌套。所以,游戏可以是单独的flash影片,还可以是嵌套在影片内的剪辑。这样能够方便在游戏中,能够添加其他的界面。在本系统中,实现了三个嵌套,在第一帧中,放置了游戏的介绍界面。第二帧放置了游戏背景界面。第三帧旋转了游戏返回界面。

3.4 数据库设计与实现

数据库是数据管理的最新技术,是计算机技术的重要分支,如今,信息资源已经成为了重要的财富和资源。在系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。另外,合理的数据库结构将非常有利于程序的实现。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。

数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。

3.4.1 数据库设计特点

大型数据库的设计和开发是一项庞大的工程,是涉及多学科的综合性技术。数据库建设是指数据库应用系统从设计、实施到运行与维护的全过程。数据库建设和一般的软件系统的设计、开发和运行与维护有许多相同之处,更有其自身的特点。

1、数据库建设的基本规律

在数据库设计中,要建设一个好的数据库应用系统,开发技术固然重要,但管理更为重要。

2、结构设计和行为设计相结合

数据库设计应和应用系统设计相结合。整个设计过程中要把数据库结构设计和对数据的处理设计相结合起来。这是数据库设计的特点之二。

3.4.2 数据库概念结构设计

在动态网站的设计中,数据库设计的重要性不言而喻。如果设计不当,查询起来就非常吃力,程序的性能也会受到影响。无论你使用的是SQL Server 2000或者Oracle数据库,通过进行正规化的表格设计,可以令你的代码更具可读性,更容易扩展,从而也会提升应用的性能。

应当尽量简化或避免对大型表进行重复的排序。当能够利用索引自动以适当的次序产生输出时,优化器就避免了排序这个步骤。为了避免不必要的排序,就要正确地增建索引,合理地合并数据库表如果排序不可避免,那么应当试图简化它,如缩小排序的列的范围等。在嵌套查询中,表的顺序存取对查询效率可能产生致命的影响。有时可以使用并集来避免顺序存取。尽管也许在所有的检查列上都有索引,但某些形式的where子句会强迫优化器使用顺序存取,这一点也应注意。

数据库概念模型是对信息的建模,所以概念模型可以准确方便地表达出信息世界的常用概念。概念模型最常用的方法是实体—联系方法。这个方法是用E—R图来描述的。E—R图提供了实体型、属性和联系的方法。实体型用矩形框表示,框内写明实体名。属性用椭圆形表示,将和它相对应的实体型相连接起来。联系用菱形表示,框内写明联系名。

排行榜信息的实体—属性图见3-6。

排行榜信息实体(mytable1),该实体的属性有:id(排名)、userName(用户名)、score(积分)。

图3-6排行榜信息实体—属性

3.4.3 数据库逻辑结构设计

本系统数据库为:sqlhulusi2008,其中只包含了一个MySQL数据表来实现对数据的存储、调用。数据表的模式为:【mytable1表】(id、用户名、积分)。该表用于存放排行榜的所有信息,表的具体设计如表3-1所示。

表3-1  mytable1表

3.5 本章小结

本章介绍了重力跑酷的基本构想,以及实现的主要功能。通过需求分析对功能模块进行了详细的介绍。包括对鼠标的实现,键盘的实现,动画的制作,都作出了具体的分析,代码的实现。最后对数据库的设计原则进行介绍,对数据库进行了分析。

第四章 系统功能的具体实现

4.1 游戏前台实现

本次系统在界面上很简单,分为主界面和游戏界面,很适合新手试玩。通过提示,很容易就上手,本系统是通过MySQL、ActionScript3.0和Adobe Flash Professional CS6技术来实现的,在设计这程中还运动到了两个PHP文件,这主要是用来连接flash和数据库的,本游戏也可以生成html文件,在网页上进行运行。

在这次的设计中,遵循了可靠性、经济性、活性原则,可靠性是这个游戏中的一个重要参数,也是设计一个游戏的最基本体现,只有让设计的游戏更加的安全和可靠,那么在我们的实际需求中才会体现出它的作用。经济性原则,也就是在能满足游戏需求的同时,尽量的去减少一些游戏的开销,让玩家可以尽情享受游戏带来的快乐,这才是本游戏设计的最终目的。本游戏平凡却不失单调,简单而不失精彩,既突出了游戏人物的动态,又体现了独有的风格。

4.1.1 游戏首页

页面功能说明:

首页很简单,一目了然,最顶端是本次设计的题目,然后是四个按钮,点击开始按钮,进入游戏,点击排行榜,就能看到在玩完游戏后你的成绩的排名,点击帮助按钮,就能很明白的了解本款游戏是怎么玩的。退出按钮点击后便会退出游戏。

主要实现代码:

private function mouseHandle(e:MouseEvent):void

        {   trace(e.target.name)

            switch(e.target.name)

            {   case "btn1":

                    start();

                    break;

                case "btn2": //显示帮助界面

                    var help:MovieClip = getView("Help");

                    help.x = 640/2;

                    help.y = 480/2;

                    this.addChild(help);

                    break;

本系统定义了一个鼠标的事件,对e.target.name进行逐个判断,它的值如果是等于“btn1”,就表示,指针点击的是开始按钮。它的值如果是等于“btn2”,表示,指针点击的是帮助界面,系统会调用帮助界面,显示在屏幕上。它的值如果是等于”btn3”,表示游戏结束。它的值如果是等于“btn4”,表示点击了排行榜。并对奔跑的距离、成绩、生命进行计算,通过“tijiaoBtn”把相对应的分数提交到排行榜中。

                case "btn3"://结束游戏

                    over();

                    break;

                case "btn4": //显示排行榜

                    ranking = new Ranking();

                    ranking.x = 640/2;

                    ranking.y = 480/2;

                    this.addChild(ranking);

                    break;

                case "tijiaoBtn"://提交成绩

                    tijiaoA();

                    break;

            }

4.1.2 游戏设计页面

游戏页面说明:

    在本界面中,最顶端的部分,由左到右分别是玩家当前所奔跑的距离,当前所奔跑的得分以及玩家所剩余的生命值。最底端是游戏的提示说明,告诉玩家应用键盘的上下键来控制人物。中间是整个游戏的背景层以及设计的人物。

页面功能说明:

在游戏中,玩家可以通过键盘的上下键来控制人物的行动,在游戏过程中,速度并不是匀速不变的,每隔多少秒的时间,速度就会由初始值5增加1.5,所以在游戏的过程中增加了些刺激感,在游戏过程中,金币产生的数量也是随机的,每隔几秒钟,就会有不等数量的金币产生,为了让这个游戏不是无限制的玩下去,本系统还需在游戏中生成怪,由于这个游戏是通过键盘上下玩的,所以在游戏界面中的上下两部分都要有怪,这样才会给本次的游戏增加些许难度。

主要实现代码:

public var speed1:Number = 5;   /** 游戏中背景的速度 **/

              public var zengNum:int = 20;    /** 每隔多少秒增加一次速度 **/

              public var temp1:int = 0;                  /** 临时变量 */

              public var temp2:int = 3;        /** 每几秒钟生成一些金币 **/

              public var temp3:int = 0;        /** 生成道具当前时间 **/

              public var jinbiArr:Array = [];    /** 放置生成后的金币数据 **/

              public var nameNum:int = 0;     /** 金币的名字 * 名字不能相同 所以使用累加方法 **/

              temp1++;

                     if(temp1 >= zengNum)

                     {   temp1 = 0;

                            speed1 += 1.5;   }    /**速度增加1.5**/

一款游戏最重要的就是怎么玩,所以要是一款游戏做出来后压根玩不了,那这个游戏一点存在的价值都没有,所以虽然这个游戏操作简单,但是如果在编写代码部分出现在了差错,那么一切都是虚有的。

在这个游戏中,需要用键盘上下键来控制人物,所以本系统需要先要定义一个键盘按键的回调函数,让变量state=0,表明人物正在跳的途中,不用管是往下跳还是往上跳,当wj.scaleY = -1的时候,说明游戏人物处于反方向了,所以要通过键盘上键让人物移动到上面去,当wj.scaleY = 1的时候,正好与刚刚的情况相反,需要通过键盘下键来让人物移动到下面来。

在整个的游戏过程中,背景层中也会出现不定的障碍,玩家需要对人物有一定的控制,来躲避这些障碍,这样才能奔跑到更远的距离,获得更高的积分。

键盘控制类主要实现代码:

/** 键盘控制类 */

         public function keyBoardFun(e:KeyboardEvent):void

         {

                if(state == 0)

                       return;

                switch(e.keyCode)

                {

                       case Keyboard.UP:

                              state = 0;

                              wj.scaleY = -1;   /** 人物头朝下 **/

                            TweenLite.to(wj, .3, {y:topY, onComplete: onFinishTween,

onCompleteParams:[1]});   /** 让人物移动到上面去 **/

                              break;

                       case Keyboard.DOWN:

                              state = 0;

                              wj.scaleY = 1;   /** 人物头朝上 **/

       TweenLite.to(wj, .3, {y:downY, onComplete: onFinishTween, onCompleteParams:[2]});  /** 让人物移动到下面去 **/

                              break;

                }

         }

4.1.3 积分排行榜,设计页面如图4-3所示。

图4-3 排行榜页面效果图

排行榜说明:

在图的最上方是排行榜的标题,在它的右侧有个打叉的按钮,点击它可以关闭排行榜。整个排行榜分为三列,第一列是排名,从第一名依次加一往后排的。第二列是用户名,用户名是以字母和数字开头,其中不能出现汉字,特殊字符。第三列是得分,本游戏的得分是按照从大到小排列的,在游戏的过程中,玩家向前奔跑的越远,分数就越高。当游戏开始的时候,距离的初值给定为0,让它依次增加,得分的算法是距离乘以10再加上在游戏过程中吃到的金币数。

页面功能说明:

通过对排行榜代码的实现,展现在你眼前的是一组由大到小排列的数据。如若不删除数据的话,那么显示出来的数据将会很多,所以在本系统中一定要设置滚动条,这样才能翻看更多的积分排名,以下就是设置滚动条的代码:

private function init():void

        {

            scoll = new ScrollBar(new Rectangle(0,0,380,336)); //初始化滚动条

            scoll.x = 203; //设置滚动条的位置

            scoll.y = -157;

            this.addChild(scoll);//添加滚动条到窗口中

            scoll.target = this["sp"]; //设置滚动条的滚动对象

            scoll.update(); //更新滚动条

                    }

在本次游戏中,很人性化的设置了积分排行榜,这样,在每次玩过以后,就能看到玩家的积分排名了,在游戏结束后,如果玩家没有输入自己的用户名,那么系统将会自动给出一个空值为“anonymity”,在这个游戏中,用户名只能给出数字或字母,如果输入汉字的话会乱码,这是这个游戏的一个不足之外,而且在游戏的排行榜中也没有清除数据的功能,要想清除数据的话,只能通过web数据库来删除你想要删除的数据。

这一部分的代码,主要就是实现了对数据的分析,拆分和对数据的从大到小排序:

public function completeFun2(e:Event):void

        {

            /*********** 加载成功后分析数据,进行拆分和排序操作 **********/

            var data:String = (e.currentTarget as URLLoader).data

            data = data.substr(0,data.length-2);

            var arr:Array = data.split(";");

            var arr1:Array = [];

            var i:int = 0

            for(i = 0; i < arr.length;i ++)

            {

                var arr5:Array = String(arr[i]).split("&");

                arr1.push([arr5[0],arr5[1]]);

            }

            var temp:int = 0;

            var arr2:Array = [];

            var arr3:Array = [];

            /***  排序 从大到小排序 */

            for(i = 0;i < arr1.length;i++ )

            {

                arr2 = arr1[i];

                temp++;

                for(var j:int = temp;j < arr1.length;j++)

                {

                    if(int(arr2[1]) < int(arr1[j][1]))

                    {

                        arr3 = arr1[i];

                        arr1[i] = arr1[j];

                        arr1[j] = arr3;

                    }

                }

对数据排完序之后,就要将这些数据显示到界面中去,呈现在玩家的眼前。在本系统中,对排行榜中出现的字段进行计算,距离的计算,得分的计算和剩余生命的处理,将最终得到的数据,经数据库的连接返回到游戏中来。

主要实现代码:

for(i = 0; i < arr1.length;i ++)

            {

                var list:MovieClip = Main.me.getView("list1");

                list["tex1"].text = ""+(i+1);

                list["tex2"].text = arr1[i][0];

                list["tex3"].text = arr1[i][1];

                list.y = (i*list.height);

                this["sp"].addChild(list);

                scoll.update();

                trace("用户名:"+arr1[i][0]+" --- 得分:"+arr1[i][1]);

            }

4.1.4 帮助界面

页面功能说明:

这一部分的功能很简单,就是介绍了这一款游戏的玩法,这一部分是在Adobe Flash Professional CS6技术中,插入一个帧,让它在时间轴上,能由小到大渐渐的弹出来。时间轴主要用来组织和控制文档,让它们能在一定的时间内播放图层数和帧数。它的性质和胶片一样,可以将文档分为帧。图层就好比叠在一起的好几张幻灯片一样,在每个图层中包含了显示在舞台上的不同图像。时间轴主要是由图层、帧和播放头组成的。在图层中,只要将播放头从左向右地通过时间轴就可以看到帮助界面渐出的效果了。

文本部分只需要使用文本工具,然后在文本框中输入文字即可,这里的字体用的是黑体,因为在测试的过程中发现,如果使用宋体的话,那么在游戏的时候,会看到左上方的距离和分数是无法呈现在你的眼前的,至于为什么会出现这样的情况,还需要对游戏做进一步的改进。

4.1.5游戏音乐背景

游戏音乐背景,是一款游戏是否优良的重要考评对象。每一款游戏的开发者都会重视背景音乐的质量,音乐的风格、节奏、旋律都可能对玩家形成较大的影响很多人是因为音乐而爱上了游戏,很多游戏是因为音乐而深入人心。在这款游戏中,还添加了背景音乐,这样更容易投入到游戏中去,也更容易的让你喜欢上这款游戏,就好像梦幻的音乐很轻快,能让你放松,深沉的音乐好让人全神贯注。此外,游戏不仅是一种娱乐,还是对成长发展和学习过程中的一种很有价值的活动。音乐游戏有助于增强人们对音乐知识的理解,让本身枯燥的东西变得更加的生动形象。它还具有趣味性、创造性、自然性等游戏的共同特点,提高了在游戏中的兴趣。

主要实现代码:

public function LoadMusic()

        public function load(ID:String,Num:int = 1,bool:Boolean = false,_vomule:Number = 100) // 定义参数

        {

            bofang = bool;     //传过来的参数赋值 

            Vomule = _vomule/100;  //传过来的参数赋值

            cishu = Num;       //传过来的参数赋值

            Play.load(new URLRequest(ID));

            Play.addEventListener(Event.COMPLETE,OK);

            if(bofang)

            {

                 play(); //加载完毕之后播放音乐

            }

        }

定义一个音乐的函数,定义它的参数为路径、播放次数、加载完毕是否立即播放和声音大小,声音的大小控制在1-100之间,依次对传递过来的参数进行赋值,在游戏中添加音乐的事件,如果传过来的参数为bool,在系统统中能成功播放。在游戏的过程中,需要对播放次数进行循环,播放次数的值在本系统中可以任意定义一个值,要想确保在游戏结束前,音乐仍未停止,需要多次播放,在定义值的时候可以给定的数值大一点。

        private function OK(e:Event)

        {

            Play.removeEventListener(Event.COMPLETE,OK);

            }

            public function play()  // 调用这个函数 播放刚才加载的音乐

        {

            try{

                channel = new SoundChannel()

                var pausePosition:int = channel.position

                MusicControl = new SoundTransform(Vomule);

                channel = Play.play(pausePosition,cishu,MusicControl);

            }catch(e:Error){

            }          

        public function stop()  //这个函数停止播放

        {

            try{

                channel.stop();

            }catch(e:Error){

            }

        }

4.2 后台数据库的实现

4.2.1 数据库登录界面。

本游戏中的数据库是通过web来访问的,通过输入用户名和密码,方能进入数据库,才能详细的查看到玩家在游戏结束后,所对应的积分。在本系统中,对数据的处理都是在数据库中进行的,包括对数据的查看、增加、删除和修改。如果想要删除排行榜中的积分,也要通过数据库来操作,只有管理员才有权限对数据库里的数据进行变动。在如图所示的登录界面,输入用户名和密码,点击执行按钮,就会进入到数据库中。

4.2.2 数据库基本信息。

功能说明:这里主要存放的是排行榜里的一些数据,其中包括了,排名名次、用户名和最终的成绩,每当一局游戏下来,数据库便会一个个的存放数据,将数据返还到游戏当中,这样就能通过前台直接观察到这一局到底跑了多少分。

在这个页面中,可以对里面的信息进行添加、删除、和修改,具体实现如下:

1、从页面中,可以看到,在表格的下方,可以添加一个字段,比如,要是觉得就3个字段太过于简单,还想在里面添加一个距离的字段,这样在排行榜中就能看到玩家跑了多远,那么就可以很直观的看到了。

根据自己的想法,可以添加一个字段到表尾,要是你最先想看到距离的话,便可添加字段于表开头,如果你想要在用户名后面看到分数,那么可以在后面的菜单下拉框中选择userName,然后选择执行,就可以将你想要字段添加进去了。

2、从页面中,可以发现在右侧,有一栏操作,从左住右分别是浏览、修改、删除、主键唯一、索引和全文搜索,如果想要对其做些操作,只要从这些功能里面选择就可以了。点击想要操作的功能,就能对该对应的操作进行变动。管理员使用这个数据库可以,对排行榜上的数据进行更改,所以说,这个数据库还是很容易对其操作的。

4.2.3 数据库的数据删除。

功能说明:为了防止数据无限的存放下去,以及占用内存空间,本系统需要定期的对数据进行删除,这样才能确保程序能够快速运行。从主界面登录进去后,可以看到在这个游戏中只使用的一个叫mytable1的表,在表的后一栏中是操作部分,选择第一个操作,点击进去,就能看到图4-7的界面,在最上端可以看到一共显示了6行,也就是说,我们一共玩了这个游戏6次,和排行榜是相对应的,下面一部分就是用来删除数据的,点击前面的复选框,选择你想要删除的数据,如果你都不想保留这些数据的话,就可以点击下面的全选。然后点击红叉就可以把所有的数据都删除了。

4.2.4  PHP的实现

功能说明:

    在本次游戏中,用到的PHP代码只有简短的几十行,PHP主要在这次的游戏中起到的作用就是连接游戏和数据库,让数据能够及时的返回到游戏中去。第一个PHP文件主要编写的是查看数据库中保存的数据的。需要先对数据库进行连接,连接失败的话就直接返回游戏中,连接成功后,对数据进行转码,然后在数据库中进行查询,获取数据集,如果获取失败的话,就终止操作,成功的话就把数据返回到游戏中,显示出来,在数据库中便会关闭数据集。

主要实现代码:

<?php

 $link=mysql_connect("127.0.0.1","hulusi2008","hudezheng");   //连接数据库

if(!$link) echo "no connect!";                     //连接失败直接返回 

mysql_select_db("sqlhulusi2008", $link);           //选择数据库 

 mysql_query("SET NAMES 'utf8'");                  //进行转码

$q = "SELECT * FROM myTable1";                     //SQL查询语句 

mysql_query("SET NAMES 'utf8'");                   //进行转码

$rs = mysql_query($q, $link);                      //获取数据集 

if(!$rs){die("Valid result!");}                    //如果获取失败,终止操作

while($row = mysql_fetch_row($rs))

{   echo "$row[1]&$row[2];"; }                    //返回数据  

mysql_free_result($rs);                           //关闭数据集 

功能说明:

    这是我们在这个游戏中用到的第二个PHP文件,在这个文件中,本系统主要编写的保存数据的。想要数据从数据库中返回数据,就需要对数据进行转码,还后连接到数据库中去,在数据库中执行语句,从而获取数据集,然后返回客户端的数据,最后关闭数据集。

实现代码:

<?php

$flashData1 = $_POST['userName'];                      //得到flash传来的用户名

$flashData2 = $_POST['score'];                         //得到flash传来的得分

$flashData1 = iconv("GB2312", "UTF-8", "$flashData1"); //对传来的用户名进行转码$link=mysql_connect("127.0.0.1","hulusi2008","hudezheng");    //连接mysql数据库

if(!$link) echo "no connect!";                         //判断连接结果,连接失败直接返回

mysql_select_db("sqlhulusi2008", $link);              //选择数据库 

$insql = "INSERT INTO myTable1 (id, userName, score) VALUES ('','$flashData1','$flashData2')";                    //组合数据库语句

mysql_query("SET NAMES 'utf8'");                      //进行转码

mysql_query($insql);                                  //执行数据库语句

 mysql_query("SET NAMES 'utf8'");                     //进行转码

$q = "SELECT * FROM myTable1";                        //SQL查询语句 

mysql_query("SET NAMES 'utf8'");                      //进行转码

$rs = mysql_query($q, $link);                         //获取数据集 

if(!$rs){die("Valid result!");}                       //如果获取失败,终止操作

while($row = mysql_fetch_row($rs) )                  //循环组合要返回客户端的数据

{

    //$userName = iconv("UTF-8", "GB2312", "$row[1]");

    echo "$row[1]&$row[2];";   //返回数据

}  

mysql_free_result($rs);                    //关闭数据集

?>

在本游戏中,主要有两个地方用到了PHP文件,通过代码中用到的一个网址,我们可以在浏览器中,直接将那个网址输入进去,它主要的功能是,在游戏中进行几场游戏下来,会有相对应的数据提交到数据库中,我们可以通过网址直接打开,在其中可以很清楚的看到游戏的结果,看到玩家跑了多远。一个my2.php文件是在主函数中写出的。实现代码如下:

var vars:URLVariables=new URLVariables(); //提交资源携带参数 1、用户名 2、分数

            if(tijiao["tex1"].text == "")

                vars.userName = String("anonymity");

            else     //userName

                vars.userName = String(tijiao["tex1"].text);

            vars.score = score;

            request.url = "http://www.flashas3.com/mysql_pk/my2.php";

还有一个look.php文件是在写游戏函数的时候给出的,需要在其中定义资源对象,设置加载类型,然后对数据进行加载,它们这两个文件的功能是差不多的,一个是保存游戏数据,一个是查看数据库中的数据,所以我们将网址输入进去后,两个结果是相同的,都是可以看到游戏玩过之后的数据,这个look.Php文件主要在游戏代码中的实现如下:

public function btnClearClick():void

        {

            var postLoader:URLLoader=new URLLoader(); //加载对象

            var request:URLRequest=new URLRequest(); //资源对象

            request.url = "http://www.flashas3.com/mysql_pk/look.php?v="+new Date().getTime().toString(); //设置资源地址,后缀加上时间是为了防止缓存文件

            request.method = URLRequestMethod.POST; //设置加载类型为post

            postLoader.load(request);//开始加载数据

           

            postLoader.addEventListener(Event.COMPLETE,completeFun2); //设置加载成功回调函数

        }

4.3 本章小结

本章主要介绍了这次设计的功能模块的实现,并对每个功能模块的详细说明,并对这次设计进行展示,在本章中也附上了关键的代码以示说明。

第五章 总结

经过几个月的系统设计和开发,基于flash的横版页面游戏的设计与开发基本开发完毕。在此期间,我根据设计的主要内容,寻找和翻看了大量关于开发小游戏的相关资料,也通过上网寻找了一些文献资料,在设计过程中,为了使得界面更完美,翻看了美化界面的书籍,有了这些前提,在做游戏上打下了良好的基础。

在此次的设计中,我对游戏的设计和开发有了一定的了解,一步步地按照游戏开发的步骤,先从需求分析,然后到详细设计,再到编写代码,最后进行游戏的测试等。每一个部分,都花费了很长的时间,现在基本完成了各个部分所需要的开发工作。

本次毕业设计是采用了ActionScript3.0和Adobe Flash Professional CS6技术来实现的,经过这次的设计,让我熟悉了如何使用CS6,如何去添加帧,如何插入我想要增添进去的内容,如何定义一个按钮,怎么对鼠标单击事件做出响应,以及如何在这个游戏中添加声音效果,同时也知道了如何让游戏与数据库相连,让游戏产生的结果可以更直接的显示出来。这可以让我们更快速,更清晰的看到结果。设计完这个游戏后,让我对这个软件有了更深一步的了解,也懂得了理论和实践相结合的道理,同时也让我意识到了独立思考的能力。

每一次的设计都不可能是最完美的,在这次设计中,我也遇到了各种各样的问题,尤其是在对游戏进行设定场景,让整个画面可以滚动起来的时候,我也烦燥过,但静下心来想想,这样是没有办法解决问题的。所以等到心平气和的时候,和同学一起讨论问题,翻看书中的知识,终于还是可以把问题迎刃而解的。这让我懂得了,遇事不能心浮气燥,也不能钻牛角尖,正确的认识问题出在哪里,和同学多沟通,多看资料,不怕失败,坚持到底,才能解决问题。

虽然本次的设计已经开发出来了,但我也知道,这次的设计还有很多的不足之处,也许在功能模块上还有很多的欠缺,游戏的难度也不是很大,在测试游戏的时候,也会发现整个画面在滚动的过程中连接还不够完美,在设定游戏的时候,没有设计一个终点,所以如果在这个游戏中一直不出现蜗牛的话,很有可能游戏会一直进行下去,这个游戏没有太多关卡,生命值也只有一条,但是死亡之后你可以选择重新开始和返回游戏。这次的设计还有待更多的改进,但我会继续努力做到更好。


 [S1]AS3.0

更多相关推荐:
打砖块游戏课程设计报告

目录第1章程序设计专题目的与要求111程序设计目的112程序设计的实验环境113程序设计的预备知识114程序设计要求1第2章程序设计内容221概要设计222程序整体设计说明223程序部分源代码及注释824测试结...

24点游戏课程设计报告

目录123基本功能描述2设计思路2软件设计431设计步骤432界面设计533关键功能实现6331发牌功能的实现6332计时功能的实现7333计算功能的实现7334验算功能的实现94567结论与心得体会9参考文献...

连四游戏课程设计报告

第1章引言1第2章任务概述121问题概述1211问题重述1212设计目的122需求分析1221基本要求1222游戏功能介绍123编程语言概述124编程环境概述1第3章概要设计231功能设计232程序结构233基...

游戏24点课程设计报告

游戏24点课程设计报告一题目分析类计算24点任意输入4位数字利用四则运算使之得到结果24输出所有不同算法的计算表达式可为运算优先级而使用括号二问题分析1全面性此问题要求输出结果为24的计算表达式并且要求输出要全...

java_扫雷游戏课程设计报告

滨江学院20xx20xx学年第2学期数字图像处理课程论文专业姓名学号20xx年06月05日设计通信编程课程论文Java设计扫雷游戏王李超20xx2334038南京信息工程大学滨江学院电子工程系南京210041设...

动画与游戏设计 课程设计报告

动画与游戏开发课程报告学号1111020xx103姓名张慧专业班级11级计科本01班日期电子信息工程学院1目录一课程内容及应用领域11基于DirectX的粒子系统3111粒子系统简介3112广告板技术3113粒...

unity3d游戏课程设计报告

游戏程序设计课程报告课程Unity3D课程设计题目班级学号姓名日期一摘要1UNITY游戏是一种新型的IT引擎我们研究主要内容是UNITY游戏设计方法指以游戏客户端软件为信息交互窗口的旨在实现娱乐休闲交流和取得虚...

java局域网坦克大战课程设计报告

摘要随着计算机的普及以及对电子游戏的认识电子游戏已被越来越多的人选作放松娱乐的休闲方式电子游戏既不需要专门购买游戏器材也不需要宽阔的游戏场地只需要一台能独立完成任务的计算机即可它可以是人们工作学习时用的计算机并...

Java 课程设计报告 扫雷游戏

东华理工大学长江学院课程设计报告封面Java课程设计题目扫雷游戏姓名学号指导老师黄国辉设计时间20xx年4月1东华理工大学长江学院课程设计报告摘要摘要在今天游戏日益快速更新的情况下相信大家对Windows20x...

《贪吃蛇游戏课程设计》报告

贪吃蛇游戏课程设计报告课程名称计算机软件技术基础学院专业班级姓名学号指导教师完成时间报告成绩1贪吃蛇游戏程序设计一设计要求通过游戏程序设计提高编程兴趣与编程思路巩固C语言中所学的知识合理的运用资料实现理论与实际...

C课程设计论文报告贪吃蛇游戏

目录第1章课程设计的目的与要求.11.1课程设计目的.11.2课程设计的实验环境.11.3课程设计的预备知识.11.4课程设计要求.1第2章课程设计内容.22.1程序功能介绍.22.2程序整体设计说明.22.2…

俄罗斯方块游戏课程设计报告

计算机工程学院课程设计说明书课程名称设计项目学生姓名学号专业班级指导教师年月一任务与具体要求二设计说明书包括的内容三应完成的图纸四评语及成绩指导教师签字年月日目录1系统概述22原有程序概况33现在系统操作界面5...

游戏课程设计报告(36篇)