欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    FLASH贪吃蛇毕业设计.docx

    • 资源ID:26499954       资源大小:18.54KB        全文页数:16页
    • 资源格式: DOCX        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FLASH贪吃蛇毕业设计.docx

    FLASH贪吃蛇毕业设计 1.游戏设计背景 随着科技与经济的快速发达,知识经济的快速增长,娱乐逐渐变成人与智能的交流。智能化的娱乐游戏在网络里愈来愈好,众多的游戏不胜枚举。比如益智类的小游戏、腾讯游戏、网页游戏、格斗游戏、模拟游戏等,尤其是最近网络上特别流行的Flash制作的动画越来越受关注。现在就探究下用Flash软件制作贪吃蛇的游戏的设计原理。 1.1游戏设计原理 游戏贪吃蛇就是在Flash软件用影片剪辑设计出蛇,食物,同时随机地给出食物。游戏者通过键盘操作控制贪吃蛇的移动,去吃食物,吃到食物后消失,然后再随机给出食物同时蛇的身体增长。设计蛇的原理就是利用人眼的视觉效应先将蛇头向前移动一格,然后所有蛇身依次向前移动一格,最后再擦除蛇尾。这样看来好像蛇在向前移动。食物的给出,首先需要产生一个随机数,然后通过这个随机数计算得到食物的纵横坐标,在软件运行效果里显示出来。控制蛇的移动方向,需要扫描键盘,然后根据键值改变蛇的移动方向。 1.2游戏设计的运行环境 学习Flash开发,首先要建立首要的、基础的正确认知。在几乎任何应用程序开发中,都要接触到三个相互关联的方面:一个是开发环境,一个是运行环境,再一个是开发语言。 1.2.1软件开发环境 Flash应用程序开发也包含着三个方面,即使用Flash CS 3作为开发环境,以ActionScript 2.0作为开发语言,以Flash Player 9为运行环境进行Flash应用程序开发和创作的完整知识体系。 对于Flash应用程序开发,在进行Flash开发时,安装一个开发工具(也被称为开发环境、创作环境等。目前流行的Flash开发工具基本都是Adobe公司的产品,最著名的就是Flash CS3和FLEX。 1.2.2运行环境 Windows Macintosh 处理器 800 MHz Intel Pentium III processor (or equivalent) and later 600 MHz PowerPC G3 and later 操作系统 Windows 2000, Windows XP Mac 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 space 360 MB available disk space 1.2.3开发语言 用户要进行Flash 开发,要接触是ActionScript (简称AS ),ActionScript 程序语言是用于Flash 开发的交互语言。ActionScript 有三种语言编写风格,这就是AS1、AS2和AS3。AS1遵循ECMA-262第3版所制定的规范,AS2遵循即将发布的ECMA-262第4版规范,但它们的运行环境只有一种,即Flash Player VM (Adobe 称为A VM1,A VM 是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.show Mouse.show() 在SWF文件中显示鼠标指针,指针在默认情 况下可见 Mouse.hide Mouse.hide() 隐藏SWF文件中的鼠标指针 Mouse.addListener Mouse.addListener(newListener) 注册一个对象以接收onMouseDown、 onMouseMove和onMouseUp通知。(参数: newListener为一个对象) Mouse.removeListener Mouse.RemoveListener(listener) 删除用addListener方法注册的对象。(参 数:listener为一个) MovieClip.onMouseDown MyMovieClip.onMouseDown 当按下鼠标左键时调用 MovieClip.onMouseMove MyMovieClip.omMouseMove 当鼠标移动时调用 MovieClip.onMouseUp MyMovieClip.onMouseUp 当释放鼠标左键时调用 2.3.2 Key类 Key类是不通过构造函数即可使用其方法和属性的顶级类。使用Key类的方法可生成用户能够通过标准键盘控制的界面,该类的属性是常量,表示控制游戏时最经常使用的键。 方法名用法说明 Key.addListener Key.addListener(newListener) 注册一个对象,以接收onKeyDown或onKeyUp的通 知 Key.getAscii Key.getAscii() 返回按下或释放的最后一个按键的ASCII码值 Key.getCode Key.getCode() 返回最后一次按键的键控代码值 Key.isDown Key.isDown(keycode) 判断是否按下了参数keycode中指定的键。若按下 则返回True;否则将返回False。 Key.isToggled Key.isToggled(keycode) 判断CapsLock键或NumLock键是否处于激活状态, 若是则返回True。 Key.removeListener Key.removeListener(Ustener) 删除通过addListener方法注册的对象。若删除成 功,则返回True;否则返回False。 Key.onKeyDown someListener.onKeyDown 当按下某个按键时获得通知 Key.onKeyUp SomeListener.onKeyUp 当释放某个按键时获得通知 2.3.3 Button类 按钮是Flash影片中实现交互功能最常见的对象,SWF文件中的所有按钮元件都是对象的实例,用户可在属性检查器中指定按钮实例名称,并通过动作脚本使用Button法和属性来操纵按钮。 名称用法说明 Button.onDragOut myButton.onDragOut 当在按钮上按下鼠标按键,并且不释放按键 时,然后将鼠标指针滑出按钮时调用事件Button.onDragOver myButton.onDragOver 当用户在按钮上按下鼠标,然后在不释放按键 的情况下将鼠标指针拖到按钮之外后,再次将 鼠标指针移到按钮上方时调用事件Button.onKeyDown myButton.onKeyDown 当按下键盘上的某个按键时调用事件 Button.onKeyUp myButton.onKeyUp 当释放键盘上的某个按键时调用事件 Button.onPress myButton.onPress 当在按钮上按下鼠标按键时调用事件 Button.onRelease myButton.onRelease 当用户释放鼠标左键时调用事件 2.3.4 MovieClip类 MovieClip中类的方法提供的功能与定位影片剪辑的动作所提供的功能相同,无需使用构造函数方法即可调用MovieClip类的方法,用户只需在语法中按名称引用影片剪辑实例即可。 方法名与用法 myMovieClip.attachMovie(idName,newName,depth,initObject) 从面板中取出一个元件,并将其附加到舞台上由MovieClip指定的影片中。 myMovieClip.creatEmptyMovieClip(instanceName,depth) 为现有的影片剪辑元件实例创建子级的空影片剪辑元件实例。新创建的空影片剪辑的注册点为左上角。myMovieClip.createTextField(instanceName,depth,x,y,width,height) 创建现有影片剪辑元件实例的子级空文本字段。 myMovieClip.duplicateMovieClip(newname,depth,initObject) 在影片播放时,复制指定影片剪辑元件的实例。 myMovieClip.gotoAndPlay(frame) 跳转到指定帧并开始播放影片。 myMovieClip.gotoAndStop(frame) 将播放头跳转到指定的帧,并停止影片的播放。 myMovieClip.hitTest(x,y,shapeFlag) MovieClip.hitTest(target) 判断指定的实例是否与标识的点击区域或target重叠或交叉。 myMovieClip.loadMovie("url",variables) 在播放原始SWF影片时,将外部SWF或JPEG文件加载到FlashPlayer中的影片剪辑中。 myMovieClip.removeMovieClip() 删除使用duplicateMovieclip动作或MovieClip对duplicateMovieclip或attachMovie方法创建的影片剪辑元 件实例。 myMovieClip.unloadMovie() 删除使用loadMovie或attachMovie方法加载的影片剪辑元件实例。MovieClip类的事件处理函数的八种状态 名称用法说明 MovieClip.onData myMovieClip.onData 当影片剪辑元件实例通过loadVariables或 loadMovie方法调用接收数据时调用事件MovieClip.onKeyDown myMovieClip.onKeyDown 当影片剪辑元件实例设置了输入焦点,并且有 按键被按下时调用事件 MovieClip.onKeyUp myMovieClip.onKeyUp 当键盘按键被释放时调用事件 MovieClip.onMouseDown myMovieClip.onMouseDown 当鼠标左键按下时调用事件 ovieClip.onMouseMove myMovieClip.onMouseMove 当移动鼠标时调用事件 MovieClip.onMouseUp myMovieClip.onMouseUp 当释放鼠标时调用事件 MovieClip.onPress myMovieClip.onPress 当用户在指定的影片剪辑元件实例上按下鼠 标左键时调用事件 MovieClip.onRelease myMovieClip.onRelease 当用户在指定的影片剪辑元件实例上释放鼠 标左键时调用事件 2.3.5 Sound类与Math类 Math类的方法和属性可以访问和处理数学常数和函数。Math类的所有属性和方法都是静态的,并且必须使用语法Math.method(parameter)或Math.constant 来调用。游戏中食物的随机出现就是利用了math函数里的随机函数。 游戏里的背景音乐还有对声音图标的控制也就是通过面向对象编程里的Sound类函数来控制实现的。 名称用法说明 Sound.attachSound mySound.attachSound("idName") 将指定标识符名称的声音文件附加到 Sound对象中 Sound.start mySound.start(secondOffset,loop) 指定声音文件的播放 Sound.stop Sound.stop("idName") 当指定了要停止播放的声音时,将停止该声 音的播放;若未指定idName参数,则停止 当前所有声音的播放 Sound.setVolume mySound.setVolume(volume) 设置Sound对象的音量 Sound.loadSound mySound.loadSound("url",isStreaming) 将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透视游戏设计的核心重点算法 贪吃蛇的核心算法是如何实现移动和吃掉食物。没有碰到食物的时候,贪吃蛇继续移动,吃到食物的时候,蛇身增长。咬住蛇身或蛇尾的时候,能够暂停和开始。让游戏继续下去,食物随机出现,贪吃蛇继续游动,并记录游戏所得分数。 4. 游戏详细设计与核心技术 snakenum:int=7;/蛇初始时只有7个节点 var dir:int=39;/蛇初始运动方向是向右 var i:int; var j:int; var yc:int=200;/蛇的初始坐标 var xc:int=220;/蛇的初始坐标 var snake:Array=new Array(200); var grid:Array=new Array(56);/遍历舞台数组,用来确定何处有蛇,何处可以生成食物 var panduan:Boolean=true;/true表示有食物出现 var count:int=0;/得分 defen.text=String(0);/得分文本框 for(i=0;isnakesnakenum-1.y)/向下运动 mc.x=snakesnakenum-1.x; mc.y=snakesnakenum-1.y-10; else if(snakesnakenum-2.ysnakesnakenum-1.x)/向左运动 mc.x=snakesnakenum-1.x+10; mc.y=snakesnakenum-1.y; else if(snakesnakenum-2.x=0 && snake0.x=0 && snake0.y<=400) for(i=0;i<snakenum-1;i+) xc=snakei.x/10; yc=snakei.y/10; gridxcyc=1; if(panduan=true) xc=Math.round(Math.random()*54); yc=Math.round(Math.random()*39); if(gridxcyc=0) food.x=xc*10; food.y=yc*10; gridxcyc=2;

    注意事项

    本文(FLASH贪吃蛇毕业设计.docx)为本站会员(h****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开