游戏毕业设计论文.doc

上传人:钟*** 文档编号:5362245 上传时间:2020-01-27 格式:DOC 页数:14 大小:50.50KB
返回 下载 相关 举报
游戏毕业设计论文.doc_第1页
第1页 / 共14页
游戏毕业设计论文.doc_第2页
第2页 / 共14页
游戏毕业设计论文.doc_第3页
第3页 / 共14页
点击查看更多>>
资源描述
人生最大的幸福,是发现自己爱的人正好也爱着自己。游戏毕业设计论文 1.游戏设计背景随着科技与经济的快速发达知识经济的快速增长娱乐逐渐变成人与智能的交流智能化的娱乐游戏在网络里愈来愈好众多的游戏不胜枚举比如益智类的小游戏、腾讯游戏、网页游戏、格斗游戏、模拟游戏等尤其是最近网络上特别流行的Flash制作的动画越来越受关注现在就探究下用Flash软件制作贪吃蛇的游戏的设计原理1.1游戏设计原理游戏贪吃蛇就是在Flash软件用影片剪辑设计出蛇食物同时随机地给出食物游戏者通过键盘操作控制贪吃蛇的移动去吃食物吃到食物后消失然后再随机给出食物同时蛇的身体增长设计蛇的原理就是利用人眼的视觉效应先将蛇头向前移动一格然后所有蛇身依次向前移动一格最后再擦除蛇尾这样看来好像蛇在向前移动食物的给出首先需要产生一个随机数然后通过这个随机数计算得到食物的纵横坐标在软件运行效果里显示出来控制蛇的移动方向需要扫描键盘然后根据键值改变蛇的移动方向1.2游戏设计的运行环境学习Flash开发首先要建立首要的、基础的正确认知在几乎任何应用程序开发中都要接触到三个相互关联的方面:一个是开发环境一个是运行环境再一个是开发语言1.2.1软件开发环境Flash应用程序开发也包含着三个方面即使用Flash CS3作为开发环境以ActionScript 2.0作为开发语言以Flash Player 9为运行环境进行Flash应用程序开发和创作的完整知识体系对于Flash应用程序开发在进行Flash开发时安装一个开发工具(也被称为开发环境、创作环境等目前流行的Flash开发工具基本都是Adobe公司的产品最著名的就是Flash CS3和FLEX1.2.2运行环境 WindowsMacintosh处理器800 MHz Intel Pentium III processor (or equivalent) and later600 MHz PowerPC G3 and later操作系统Windows 2000 Windows XPMac OS X 10.3 10.4内存256 MB RAM (1 GB recommended to run more than one Studio 8 product simultaneously)256 MB RAM (1 GB recommended to run more than one Studio 8 product simultaneously) 显示1024 x 768 16-bit display (32-bit recommended)1024 x 768 thousands of colors display (millions of colors recommended) 磁盘空间710 MB available disk space360 MB available disk space1.2.3开发语言用户要进行Flash开发要接触是ActionScript(简称AS)ActionScript程序语言是用于Flash开发的交互语言ActionScript有三种语言编写风格这就是AS1、AS2和AS3AS1遵循ECMA-262第3版所制定的规范AS2遵循即将发布的ECMA-262第4版规范但它们的运行环境只有一种即Flash Player VM(Adobe称为AVM1AVM是ActionScript虚拟机的简称)2.游戏设计相关知识介绍了解贪吃蛇的设计原理后接下来就是对设计游戏的一些相关理论知识基础及深入点的分层次介绍2.1 Flash理论基础知识要点2.1.1 基础概念(1)帧频是动画播放的速度以每秒播放的帧数为度量帧频太慢会使动画看起来一顿一顿的帧频太快会使动画的细节变得模糊在 Web 上每秒 12 帧 (fps) 的帧频通常会得到最佳的效果QuickTime 和 AVI 影片通常的帧频就是 12 fps但是标准的运动图像速率是 24 fps(2)将元件看作是一种模板使用同一个模板能够创建多个实例对元件的实例可以做各种变换操作而这些操作不会对元件的各种属性有所更改也可以改变元件的属性例如颜色、形状以及边线的粗细等当对这些属性加以修改后舞台上的所有实例的相应属性也发生了变化(3)影片剪辑拥有自身的、独立于主影片的时间轴播放的多帧时间轴即可以将影片剪辑看作主影片内的小影片它可以包含交互式控件、声音、甚至其他影片剪辑实例也可以将影片剪辑实例放置在按钮元件的时间轴内以创建动画按钮(4)点语法:_root:表示绝对路径他指的是时间主轴_parent:表示当前时间轴可以操控当前时间轴上的对象等变量作用域分为全局变量、本地变量和时间轴变量2.1.2基本语法规则及简单注意事项(1)变量、函数、对象、操作符、保留关键字等语言元素有它自己的语法规则ActionScript拥有自己的句法和标点符号使用规则这些规则规定了一些字符和关键字的含义以及它们的书写顺序例如在英语中句号结束一个句子而在ActionScript中则用分号结束一个语句(2)动画设计过程中的简单注意事项 1确保处在动画测试模式 2确保不在多层中添加相互矛盾的帧动作 3确保多个动作脚本元素没有使用相同的名字 4确保所有的目标路径以确保他们的正确无误2.2面向对象编程对象 是指属性和方法的集合每个对象都具有其各自的名称并且都是特定类的实例相比较而言对象是一个形象具体的概念如生活中所使用的笔、纸张、书籍、计算机等都可称之为对象而对于每个对象来说它们都具有一些区别于其他对象的个体属性如大小、形状、颜色、使用方法等在面向对象编程中类定义对象的类别描述对象的属性(数据)和行为(方法)类是一个较为抽象的概念可以说是对象概念的提升利用类可表现一组相关对象中某些公共的属性和行为如果要使用类所定义的属性和方法必须先创建该类的实例实例化对象其实就是指定某个特定的对象 2.3游戏制作中常用函数的属性与方法2.3.1 Mouse类使用Mouse类的方法可隐藏和显示SWF文件中的鼠标指针(光标)默认情况下鼠标指针是可见的但是用户可以将其隐藏并实现用影片剪辑创建的自定义指针方法名用法说明Mouse.showMouse.show()在SWF文件中显示鼠标指针指针在默认情况下可见Mouse.hideMouse.hide()隐藏SWF文件中的鼠标指针Mouse.addListenerMouse.addListener(newListener)注册一个对象以接收onMouseDown、onMouseMove和onMouseUp通知(参数:newListener为一个对象)Mouse.removeListenerMouse.RemoveListener(listener)删除用addListener方法注册的对象(参数:listener为一个)MovieClip.onMouseDownMyMovieClip.onMouseDown当按下鼠标左键时调用MovieClip.onMouseMoveMyMovieClip.omMouseMove当鼠标移动时调用MovieClip.onMouseUpMyMovieClip.onMouseUp当释放鼠标左键时调用2.3.2 Key类Key类是不通过构造函数即可使用其方法和属性的顶级类使用Key类的方法可生成用户能够通过标准键盘控制的界面该类的属性是常量表示控制游戏时最经常使用的键方法名用法说明Key.addListenerKey.addListener(newListener)注册一个对象以接收onKeyDown或onKeyUp的通知Key.getAsciiKey.getAscii()返回按下或释放的最后一个按键的ASCII码值Key.getCodeKey.getCode()返回最后一次按键的键控代码值Key.isDownKey.isDown(keycode)判断是否按下了参数keycode中指定的键若按下则返回True;否则将返回FalseKey.isToggledKey.isToggled(keycode) 判断CapsLock键或NumLock键是否处于激活状态若是则返回TrueKey.removeListenerKey.removeListener(Ustener)删除通过addListener方法注册的对象若删除成功则返回True;否则返回FalseKey.onKeyDownsomeListener.onKeyDown当按下某个按键时获得通知Key.onKeyUpSomeListener.onKeyUp当释放某个按键时获得通知2.3.3 Button类 按钮是Flash影片中实现交互功能最常见的对象SWF文件中的所有按钮元件都是对象的实例用户可在属性检查器中指定按钮实例名称并通过动作脚本使用Button法和属性来操纵按钮名称用法说明Button.onDragOutmyButton.onDragOut当在按钮上按下鼠标按键并且不释放按键时然后将鼠标指针滑出按钮时调用事件Button.onDragOvermyButton.onDragOver当用户在按钮上按下鼠标然后在不释放按键的情况下将鼠标指针拖到按钮之外后再次将鼠标指针移到按钮上方时调用事件Button.onKeyDownmyButton.onKeyDown当按下键盘上的某个按键时调用事件Button.onKeyUpmyButton.onKeyUp当释放键盘上的某个按键时调用事件Button.onPressmyButton.onPress当在按钮上按下鼠标按键时调用事件Button.onReleasemyButton.onRelease当用户释放鼠标左键时调用事件2.3.4 MovieClip类MovieClip中类的方法提供的功能与定位影片剪辑的动作所提供的功能相同无需使用构造函数方法即可调用MovieClip类的方法用户只需在语法中按名称引用影片剪辑实例即可方法名与用法myMovieClip.attachMovie(idNamenewNamedepthinitObject)从【库】面板中取出一个元件并将其附加到舞台上由MovieClip指定的影片中myMovieClip.creatEmptyMovieClip(instanceNamedepth)为现有的影片剪辑元件实例创建子级的空影片剪辑元件实例新创建的空影片剪辑的注册点为左上角myMovieClip.createTextField(instanceNamedepthxywidthheight)创建现有影片剪辑元件实例的子级空文本字段myMovieClip.duplicateMovieClip(newnamedepthinitObject) 在影片播放时复制指定影片剪辑元件的实例myMovieClip.gotoAndPlay(frame) 跳转到指定帧并开始播放影片myMovieClip.gotoAndStop(frame) 将播放头跳转到指定的帧并停止影片的播放myMovieClip.hitTest(xyshapeFlag) MovieClip.hitTest(target)判断指定的实例是否与标识的点击区域或target重叠或交叉myMovieClip.loadMovie(urlvariables)在播放原始SWF影片时将外部SWF或JPEG文件加载到FlashPlayer中的影片剪辑中myMovieClip.removeMovieClip()删除使用duplicateMovieclip动作或MovieClip对duplicateMovieclip或attachMovie方法创建的影片剪辑元件实例myMovieClip.unloadMovie() 删除使用loadMovie或attachMovie方法加载的影片剪辑元件实例MovieClip类的事件处理函数的八种状态名称用法说明MovieClip.onDatamyMovieClip.onData当影片剪辑元件实例通过loadVariables或loadMovie方法调用接收数据时调用事件MovieClip.onKeyDownmyMovieClip.onKeyDown当影片剪辑元件实例设置了输入焦点并且有按键被按下时调用事件MovieClip.onKeyUpmyMovieClip.onKeyUp当键盘按键被释放时调用事件MovieClip.onMouseDownmyMovieClip.onMouseDown当鼠标左键按下时调用事件ovieClip.onMouseMovemyMovieClip.onMouseMove当移动鼠标时调用事件MovieClip.onMouseUpmyMovieClip.onMouseUp当释放鼠标时调用事件MovieClip.onPressmyMovieClip.onPress当用户在指定的影片剪辑元件实例上按下鼠标左键时调用事件MovieClip.onReleasemyMovieClip.onRelease当用户在指定的影片剪辑元件实例上释放鼠标左键时调用事件2.3.5 Sound类与Math类Math类的方法和属性可以访问和处理数学常数和函数Math类的所有属性和方法都是静态的并且必须使用语法Math.method(parameter)或Math.constant来调用游戏中食物的随机出现就是利用了math函数里的随机函数游戏里的背景音乐还有对声音图标的控制也就是通过面向对象编程里的Sound类函数来控制实现的名称用法说明Sound.attachSoundmySound.attachSound(idName)将指定标识符名称的声音文件附加到Sound对象中Sound.startmySound.start(secondOffsetloop)指定声音文件的播放Sound.stopSound.stop(idName)当指定了要停止播放的声音时将停止该声音的播放;若未指定idName参数则停止当前所有声音的播放Sound.setVolumemySound.setVolume(volume)设置Sound对象的音量Sound.loadSoundmySound.loadSound(urlisStreaming)将MP3声音文件加载到Sound对象的实例中2.3.6 Array类通过Array 类用户可以访问和操纵数组数组是一个对象其属性由表示该属性在数组中位置的数字来标识此数字称为索引所有数组都从零开始这意味着数组中的第一个元素为 0第二个元素为 1依此类推方法说明Array.concat()连接参数并将其作为新数组返回Array.join()将数组内的所有元素联接为一个字符串Array.pop()删除数组中最后一个元素并返回该元素的值Array.push()将一个或多个元素添加到数组的结尾并返回该数组的新长度Array.reverse()倒转数组的方向Array.shift()删除数组中第一个元素并返回该元素的值属性说明Array.length指定数组中元素数量的非从零开始的整数3. 制作贪吃蛇游戏的整体规划3.1贪吃蛇游戏的大致结构图3.2游戏设计整体构思首先场景规划主要有两个:一个是游戏封面一个是游戏运行界面其次是电影影片剪辑主要有蛇食物背景设计等按钮及文字属性都有自己的实例名便于脚本控制最后对整体的进行核心代码编写与控制在软件环境里运行并调试发现问题分析并解决最后发布游戏3.3透视游戏设计的核心重点算法贪吃蛇的核心算法是如何实现移动和吃掉食物没有碰到食物的时候贪吃蛇继续移动吃到食物的时候蛇身增长咬住蛇身或蛇尾的时候能够暂停和开始让游戏继续下去食物随机出现贪吃蛇继续游动并记录游戏所得分数3.4游戏设计核心重点函数控制(1)新建一个数组来保存当前的蛇的身体aPieceList = new Array();(2)定义mouseListener对象来侦听鼠标的onMouseDown点击事件mouseListener = new Object();mouseListener.onMouseDown = function()函数体;(3)addPiece函数的作用是调用一段身体来增长蛇身(4)moveFood函数的作用是当碰撞到食物的时候移动食物的位置(5)startGame是脚本中重要的一部分包括蛇的移动碰撞和增加蛇身4. 游戏详细设计与核心技术4.1游戏的详细设计实现游戏主要的目的就是场景的布局及影片剪辑的在舞台中的动画实现重点脚本代码的实现后台控制角色的运动主要的设计内容就是如下步骤所示:4.1.1 游戏的设计的内容 (1) 新建一个300*500的文档;(2)设置文档属性中的帧频为12(设置的更高游戏的速度更快);(3)新建两个场景分别命名为:sceneOne、sceneTwo;(4)分别对两个场景设置背景效果是风格独具一格注重色彩的搭配;(5)设置主题文字效果并为每个场景创建影片剪辑与按钮;(6)为帧和按钮添加事件脚本代码;(7)测试影片保存并发布 4.1.2游戏影片剪辑的设计场景1(sceneOne):(1)封面背景(2)设计封面主题文字与游戏规则(3)添加游戏进入按钮并为该按钮添加:on(release)gotoAndPlay(sceneTwo1);场景2(sceneTwo):(1)游戏运行背景风格是手机类状的墨绿背景(2)新建一层屏幕在舞台上画个无边框的矩形渐变填充色具体属性如下:W:300 H:300 X:0 Y:0 (3)选择文本工具在属性面板中设置为动态文本在矩形的正下方放置一个动态文本来显示所得的分数文本中写上start设置字体和颜色实例名称为tScore(4)按下ctrl+F8命名为piece设置他的属性为影片剪辑点击高级按钮选择为ActionScript导出那个标示符自动地被设置为piece(5)选择椭圆工具在当前的舞台上画一个正圆并设置如下属性:W:15 H:15 X:0 Y:0 (6)作为蛇的身体不想用圆形其他图形也可但是要保持它的高宽都是15方法同上制作一个标示符为food的影片剪辑(7)选择椭圆工具在舞台上画一个圆形并设置为如下属性:W:15 H:15 X:0 Y:0作为蛇所吃到的食物来增长身体也可在不修改高宽的情况下进行任意的修改4.2游戏的核心技术4.2.1脚本函数(canMove = true; /可以运动sta候后onMouseDown事件函数被激活k = new Object();k.;在制作游戏的时候最先考虑的问题之一就是如何是游戏中的动画画面智能化要做到这一点最终的目标是要使Flash文本友好容易编辑和扩展在制作项目设计时主要是素材搜集及理论知识的巩固与升华首先一旦确定目标就尽量思考项目的设计原理与背景其次要详细规划分工明细原则弄懂该如何利用理论基础知识要点去实现看似简单的制作最后在综合的实验过程中努力提高综合素质及分析问题解决问题的能力从而对软件应用方面会有更深刻的认知与开拓尽量提升专业素质修养透过现象看本质找到一些规律让自己的学识由量到质变的过程综合能力的提高进而为进入社会做了更好的准备工作简单的贪吃蛇游戏由蛇头、蛇身、蛇尾、食物为主角游戏控制中食物一旦吃到蛇身就增加一段而后食物随机出现蛇又运动循环往复直至蛇头咬住自己的身体某一部位游戏终止可见控制中增加了对软件高级语言编程的应用比如随机函数数组自定义函数影片剪辑事件等最后综合在一起应用除了考虑核心函数和局部函数的主次分配还要预先初定义一些变量便于控制整个游戏最后对软件的熟练操作实现最终游戏的实现?1还认真开展了6次全国统一行动,遏制了因三超一疲劳而引发的交通事故;在三、四、五月份,我队还按照州政府、州安委会、州支队要求,开展了道路交通集中整治专项行动、治理酒后驾驶、摩托车、电动车专项治理行动,均取得了一定的成效。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案


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

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


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