贪吃蛇游戏的设计与实现毕业论文
贪吃蛇MFC的VC++编辑毕业设计论文

目录第1章需求分析 (2)第2章游戏设计 (2)2.1 游戏介绍 (2)2.2 游戏结构 (2)2.2.1控制面板结构............................................. 错误!未定义书签。
2.2.2贪吃蛇行动指令系统逻辑流程设计......... 错误!未定义书签。
第3章游戏详细设计与实现 .. (5)3.1.定义蛇和食物3.2蛇形和食物绘制3.3.开始游戏暂停游戏继续游戏退出游戏3.4.初始化界面3.5.蛇在行走的运动,蛇头方向,吃食物判定,蛇身变长,游戏结束等判定第4章编码与调试 (13)第5章系统使用手册 (13)第6章总结 (13)第1章需求分析贪吃蛇是一款老少皆宜的益智类竞技游戏,操作简单广受大众喜爱,因程序简易模式多样支持多平台而被我们选为本次课设题目,我们将基于MFC的VC++编辑。
第2章游戏设计2.1 游戏介绍本游戏讲述了一只可怜的像素蛇snake,被两个可怕的猥琐怪蜀黍囚禁在一个凄凉的幽闭空间中不停追逐像素果子的故事。
在幽闭空间中每当snake碰撞到像素果子时就会伸长而且移动速度会随之变快,当snake碰触到自己身体或四壁时game over。
1. 控制面板功能(1)开始游戏;(2)暂停游戏;(3)继续游戏;(4)退出游戏;2. 游戏功能(1)snake初始位置,初始移动;(2)方向移动snake;(3)果子随机出现;(4)snake吃掉像素果子后伸长;(5)果子再生;(6)snake碰撞四壁以及身体后死亡;2.2 游戏结构整个软件根据游戏需求分析,可得出系统控制面板结构图和snake程序整体调用关系流程图。
2.2.1 控制面板结构有操作需制作控制板结构来控制游戏控制面板结构图如下所示图2.1 控制面板结构图2.2.2 贪吃蛇行动指令系统逻辑流程设计分析贪吃蛇游戏功能以及操作后得出贪吃蛇行动逻辑方案,按照方案编写程序函数以及构造程序逻辑流程图主要运行函数以及逻辑流程图如下:表2.2 主要函数表图2.3 贪吃蛇行动逻辑流程图第3章游戏细设计与实现我们将游戏的制作重点放在实现snake的各种行动指令以及实现snake的伸长和果实的随机出现3.1游戏运行中的设计与实现1.定义蛇和食物开始定义游戏中的蛇与食物两个单位struct Snake{ int x,y;int len;int direct;}Snake[50];struct Food{int x;int y;int isfood;}Food;2蛇形和食物绘制void CSNAKEView::OnDraw(CDC* pDC){CSNAKEDoc* pDoc = GetDocument();ASSERT_V ALID(pDoc);// TODO: add draw code for native data hereCBrush backBrush(RGB(100,100,0));CBrush* pOldBrush = pDC->SelectObject(&backBrush);CRect rect;pDC->GetClipBox(&rect);pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(),PATCOPY);pDC->SelectObject(pOldBrush);3.开始游戏暂停游戏继续游戏退出游戏游戏中的各菜单功能的设计与实现(1)Continue菜单void CSNAKEView::OnContinue(){// TODO: Add your command handler code hereSetTimer(1,10,NULL);}(2)Exit菜单void CSNAKEView::OnExit(){// TODO: Add your command handler code here AfxMessageBox("退出游戏...");}(3)Start菜单void CSNAKEView::OnStart(){// TODO: Add your command handler code here SetTimer(1,3000,NULL);AfxMessageBox("3秒后开始游戏!"); OnInitialUpdate();}(4)Stop菜单void CSNAKEView::OnStop(){// TODO: Add your command handler code here KillTimer(1);AfxMessageBox("暂停游戏...");}4.初始化界面void CSNAKEView::OnInitialUpdate(){CView::OnInitialUpdate();Snake[0].x=10;Snake[0].y=10;Snake[1].x=11;Snake[1].y=10;Snake[2].x=12;Snake[2].y=10;Snake[0].direct=3;Snake[0].len=3;Food.isfood=1;// TODO: Add your specialized code here and/or call the base class }5.蛇在行走的运动,蛇头方向,吃食物判定,蛇身变长,游戏结束等判定我们将蛇的一系列运动写在一个函数中,此函数用来实现蛇的各种行动以及各种判定void CSNAKEView::OnTimer(UINT nIDEvent){// TODO: Add your message handler code here and/or call defaultCDC *pDC=GetDC();CString soure;if(Snake[0].len==2)SetTimer(1,370,NULL);if(Snake[0].len==3)SetTimer(1,270,NULL);if(Snake[0].len==6)SetTimer(1,200,NULL);if(Snake[0].len==9)SetTimer(1,100,NULL);soure.Format("得分:%d!",(Snake[0].len-3)*10);//撞界判断if(Snake[0].x*20<=37||Snake[0].y*20<=37||Snake[0].x*20>=462||Snake[0].y*20>=46 2){KillTimer(1);AfxMessageBox(soure);// s=0;}//蛇身相撞判断if(Snake[0].len>3)for(int sn=Snake[0].len-1;sn>0;sn--){if(Snake[0].x*20==Snake[sn].x*20&&Snake[0].y*20==Snake[sn].y*20){KillTimer(1);AfxMessageBox(soure);// s=0;}}///////////////////////////////////////////////////////////////////////////pDC->SelectStockObject(WHITE_PEN);pDC->Rectangle(Snake[Snake[0].len-1].x*20,Snake[Snake[0].len-1].y*20,(Snake[Sn ake[0].len-1].x+1)*20,(Snake[Snake[0].len-1].y+1)*20);for(int i=Snake[0].len-1;i>0;i--){Snake[i].x=Snake[i-1].x;Snake[i].y=Snake[i-1].y;}//行走方向判断if(Snake[0].direct==1)Snake[0].y--;if(Snake[0].direct==2)Snake[0].y++;if(Snake[0].direct==3)Snake[0].x--;if(Snake[0].direct==4)Snake[0].x++;pDC->SelectStockObject(BLACK_PEN);CBrush DrawBrush=(RGB(100,100,100));CBrush *Drawbrush=pDC->SelectObject(&DrawBrush);pDC->Rectangle(Snake[0].x*20,Snake[0].y*20,(Snake[0].x+1)*20,(Snake[0].y+1)*2 0);pDC->SelectObject(DrawBrush);//判断吃豆的条件,撞到就吃if(Snake[0].x*20==Food.x*20&&Snake[0].y*20==Food.y*20){Snake[0].len++;Food.isfood=1;Snake[Snake[0].len-1].x=Snake[Snake[0].len-2].x;Snake[Snake[0].len-1].y=Snake[Snake[0].len-2].y;}//如果食物被吃了就生成if(Food.isfood==1){srand((unsigned)time(NULL));do{for(int isfo=Snake[0].len-1;isfo>=0;isfo--)if(Snake[0].x*20==Snake[isfo].x*20&&Snake[0].y*20==Snake[isfo].y*20) {Food.x=rand()%25;Food.y=rand()%25;}}while(Food.x*20<70||Food.y*20<70||Food.x*20>430||Food.y*20>430);pDC->Rectangle(Food.x*20,Food.y*20,(Food.x+1)*20,(Food.y+1)*20);Food.isfood=0;}CView::OnTimer(nIDEvent);}第4章编码与调试在上一章节中已经分模块给出了核心代码,则在此不需再给出代码,可从系统在编码实现过程中遇到的主要问题及其解决方法在此罗列。
java版的贪吃蛇毕业论文

j a v a版的贪吃蛇毕业论文Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】贪吃蛇姓名:摘要:本文用J2SE实现大家耳熟能详的一个贪吃蛇游戏来综合运用所学知识,本游戏运用软件工程思想(螺旋模型),打好游戏主体框架,JAVA的面向对象思想,封装类,接口等概念,来完成本游戏,打到综合运用知识的目的。
⑴.本游戏开发平台:WINXP;⑵.JAVA开发环境: +Eclipse;⑶.开发语言:J2SE关键词:中央控制器;游戏面板;食物;蛇;石头The Greed SnakeAbstract: In this paper, J2SE implementation of a Snake game familiar to the integrated use of what they have learned, this game is the use of software engineering thinking (spiral model), the main framework of the fight game, JAVA object-oriented thinking, wrapper classes, interface concepts to complete this game, hitting the integrated use of knowledge and purpose.⑴. The game development platform: WINXP;⑵. JAVA Development Environment: + Eclipse;⑶. Development Languages: J2SEKeywords:Controller;GamePanel;Food;Snake;Ground前言贪吃蛇游戏背景:蛇引诱夏娃吃了苹果之后,就被贬为毒虫,阴险的象征。
贪吃蛇游戏开发论文设计

MFC应用开发技术贪吃蛇游戏开发学院:人民武装学院专业:计算机工程与技术班级: 11 维护学号: 1120070257 学生姓名:胡桥林指导教师:黄顺强摘要本设计实现了一个简单的贪食蛇小游戏,该游戏不仅实现了简单的游戏操作功能,还实现了灵活的运作功能,而且具有简洁大方的图文外观。
此设计按照软件工程的方法进行,系统具有良好的界面和必要的交互信息,使操作人员能快捷简单地进行操作,给玩家一个容易有趣的游戏。
本系统开发平台为Windows XP,程序设计语言采用C++,在程序设计中,采用了结构化与面向对象两种解决问题的方法。
关键词:程序设计;计算器;MFC;按钮控件目录第一章游戏说明 (4)1.1 功能描述 (4)1.2 VC++6.0 的介绍 (4)第二章 MFC的的概述 (5)2.1 MFC的介绍 (5)2.2 类的介绍 (5)第三章总体设计说明 (7)3.1 设计思路 (7)3.2 程序框图 (7)3.3 数据结构 (9)3.4 主要算法 (10)第四章代码实现 (11)4.1 随机放置食物 (11)4.2 初始化数据 (11)4.3 方向键控制蛇的运动方向 (13)第五章运行结果 (17)5.1 初始界面 (17)5.2 开始游戏时的界面 (17)5.3 游戏运行时界面 (18)5.4 游戏结束 (18)总结 (20)致谢 (21)参考文献 (22)第一章游戏说明贪食蛇是一个深受大众喜爱的简单游戏,玩家通过按键上的四个光标控制蛇的上下左右四个方向移动,蛇头碰撞到食物则表示食物被蛇吃掉,这时蛇的身长长一节,接着出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或者身体交叉蛇头撞到自己的身体游戏结束游戏运行环境:设计环境:Microsoft Windows XP开发工具:Visual C++ 6.0运行环境:Microsoft Windows XP及以上版本1.1 功能描述游戏规则如下:●点击游戏->开始菜单游戏开始;●通过方向键控制蛇的运动方向,吃掉随机出现的豆子,若不小心碰到墙壁或者与自身相交,则该轮游戏结束;●点击游戏->暂停按钮,暂停游戏;点击游戏->继续菜单,继续游戏;●点击设置->难度菜单,设定游戏难易程度;●点击游戏->结束菜单退出游戏。
贪吃蛇毕业论文

创作编号:GB8878185555334563BT9125XW创作者:凤呜大王*目录一.功能描述............................................................................................................................... 2二.基本原理............................................................................................................................... 2三、设计的具体实现............................................................................................................... 3(1)函数定义..................................................................................................................................... 3(2)主函数main( ) ............................................................................................................................ 4(3)画界面函数DrawK( ) ................................................................................................................ 5(4)游戏具体过程函数GamePlay() ......................................................................................... 5(5)游戏结束函数GameOver() ................................................................................................ 9四、调试及解决方法........................................................................................................... 10五、测试结果........................................................................................................................... 10六、设计心得体会 ................................................................................................................ 12七、参考文献........................................................................................................................... 12八、源代码 (14)一.功能描述基本功能:开始蛇向右方移动。
毕业设计(论文)-贪吃蛇游戏的设计

本科毕业论文(设计)(2015届)贪吃蛇游戏的设计院 系 电子信息工程学院专 业 电气工程及其自动化姓 名指导教师 副教授2015年4月摘要本篇论文主要是设计并且着手致力于实现一种基于51单片机的经典的贪吃蛇游戏,主要是研究该游戏的硬件电路和软件编程的设计,同时也简单介绍了应该如何使用Proteus软件进行仿真。
借助仿真软件进行实验测试,可以基本实现游戏一些简单的基本功能。
直至现在,大家都知道且明白了51系列的单片机技术相对而言比较成熟,功能也十分强大,应用较为广泛。
将单片机作为本设计的控制核心,能够使硬件电路大大地简化,用软件来编程控制单片机,来加以实现硬件电路的功能,可以降低能耗,同时也节约成本。
选用C语言编程,比较方便灵活,极大地加快了软件开发的速度,使开发周期缩短了,同时方便移植。
本篇论文比较详细的的介绍了各种硬件的基本特性,贪吃蛇游戏实现的基本功能与详细设计,软件设计的具体说明,每一个模块的细节要求,还有一些功能模块的程序流程图和关键部分代码的详细讲解等。
关键词:Proteus软件仿真;51单片机;Keil;贪吃蛇;LED点阵屏AbstractThis paper is mainly committed to the design and begin a 51 microcontroller based on the classic Snake game, is to study the hardware circuit design and software programming of the game, but also a brief introduction to how to use Proteus simulation software . With simulation software experimental tests, the basic realization of the game can be some simple basic functions. Until now, we all know and understand the 51 series of single-chip technology is relatively mature, the function is also very powerful, is widely used. The microcontroller as control core of this design, enabling greatly simplify the hardware circuit with microcontroller programming control software, hardware circuitry to be functional, you can reduce energy consumption, but also cost savings. Selection of the C programming language, more convenient and flexible, which greatly accelerated the pace of software development, shorten the development cycle, while convenient for transplant. This paper a more detailed introduction to the basic characteristics of various hardware realization of the basic functions of the Snake game with detailed design, software design, specify the details of the requirements of each module, there are some functional modules of the program flow chart and explain in detail the critical parts of the code and so on.Keywords:Proteus software simulation;51 microcontroller;Keil;Snake;LED lattice;目录摘要 (I)Abstract (II)目录 (Ⅲ)1 绪论 (1)1.1研究背景及意义 (1)1.2单片机发展状况 (1)1.3 LED发展状况 (2)1.4 设计特点 (3)2 系统总体设计 (3)2.1设计要求 (3)2.2 系统设计方案 (4)2.2.1硬件设计 (4)2.2.2软件设计 (4)3系统硬件设计 (4)3.18*8LED点阵的原理说明 (4)3.2 LED阵列驱动电路 (4)4系统软件设计 (5)4.1系统主要模块介绍 (5)4.1.1 主函数模块 (6)4.1.2 按键模块 (6)4.1.3 蛇运动控制模块 (6)4.2主程序工作流程 (6)4.3 游戏设计思想 (7)4.4 LED点阵初始化 (8)4.5 贪吃蛇的移动 (9)4.6 食物的随机出现 (9)5联调与测试 (9)5.1软件调试 (9)5.2硬件调试 (10)结论与展望 (13)致谢 (14)参考文献 (15)附录A:系统原理图 (16)附录B:系统PCB图 (17)附录C:系统仿真图 (18)附录D:系统实物图 (18)附录E:系统源程序 (20)1 绪论1.1研究背景及意义时代在不断的进步,人们的生活节奏也因此不断加快,越来越多的人加入了经济化全球化的世界。
基于Android贪吃蛇游戏_本科毕业设计(论文)

本科毕业设计(论文)题目名称:基于Android贪吃蛇游戏学院:计算机科学技术专业年级:计算机科学与技术08(师)级摘要本课题是利用java语言在Android平台上进行手机游戏的开发,由于本人知识的有限,以及客观条件的限制,本人打算开发一个单机版的游戏。
本人在手机上玩过贪吃蛇的游戏,曾经为了和别人比赛,苦苦的玩了好多次,追求高分!后来得知这个小小的游戏是nokia当年很成功的一款手机游戏,许多人都玩过,也很喜欢。
现在这款游戏的版本已经发展到第三版了,手机生产厂商继续开发这个游戏,看来这个游戏还是有很大的市场的。
Google公司2007年11月5日发布的开源的Android 平台——一款包括操作系统(基于Linux内核)、中间件和关键应用的手机平台,并组建了开放手机联盟(Open Handset Alliance),包括Google、中国移动、T-Mobile、宏达电、高通、摩托罗拉等领军企业。
于是,我决定利用自己大学所学的知识,自己在指导老师的帮助下,独立开发这个小游戏。
本文首先详细介绍了java的一些基本的知识点,在此基础上引出了Android,介绍了Android的基础以及其特点,然后介绍了一下Android将来的一些前景和发展。
重点说明了这个贪吃蛇程序所用到的一些类和控件,包括Drawable,Canvas, Thread,等等。
介绍了这些类的一般的使用方法,以及本程序是如何使用这些类来进行游戏的开发的。
本程序将老少皆宜的经典作品移植到手机上来,为更流行的硬件平台提供应用软件。
这些都将能很好的满足未来人们对手机游戏的需求。
吞吃蛇游戏基于Android平台编写,满足一般手机用户的娱乐需求。
关键词:Android系统; 贪食蛇游戏; 手机游戏Abstract.This topic is using java language on the Android platform mobile phone game development, I limited knowledge, and objective constraints, I intend to develop a stand-alone game. I played the game of Snake, on the phone once in order to match with others, struggling to play many times, the pursuit of high scores! Later learned that this little game nokia was very successful mobile phone games, many people have played, and also enjoyed. Version of the game has been developed to the third edition, mobile phone manufacturers continue to develop this game, it seems that this game is a great market. Open-source Android platform, Google's released on November 5, 2007 - an operating system (Linux kernel), middleware and key applications-based mobile phone platform, and the formation of the Open Handset Alliance (Open Handset Alliance), includingGoogle, China Mobile, T-Mobile, HTC, Qualcomm, Motorola and other leading enterprisesSo, I decided to use the knowledge learned in his college, in the instructor's help, the independent development of this game.This article first details some of the basic java knowledge, on this basis leads to Android, the basis of the Android and its characteristics, and then introduces the Android future prospects and development. Highlights this Snake procedures used and controls, including the Drawable Canvas, Thread, and so on. Describes the general use, as well as the program is how to use these classes to the development of the game. The ages of the classic works transplantation in this program to the phone up, to provide application software for the more popular hardware platforms. These will be well positioned to meet future demand for mobile games. Devour the snake game based on the Android platform, prepared to meet the entertainment needs of the general mobile phone users.Key words: Android system; Gluttony snake game; Mobile game目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 Android简介 (1)1.1.1 Android的来源及发展 (1)1.1.2 Android系统的特点 (2)1.2 项目目的与意义 (2)1.2.1 开发目的 (2)1.2.2 开发意义 (3)1.3 国内外现状分析 (3)1.3.1 国内外手机系统现状 (3)1.3.2 国内外手机应用现状 (4)1.3.3 发展趋势 (5)第2章方案论证 (6)2.1 经济可行性分析 (6)2.2 技术可行性分析 (6)2.2.1 Android平台特性 (6)2.2.2 Android平台架构 (6)2.2.3 Android应用程序组件 (7)2.3 本项目的开发方法 (8)2.4 开发工具及环境简介 (10)2.4.1 开发工具Eclipse简介 (10)2.4.2 开发环境简介 (10)第3章需求分析 (11)3.1 系统开发目标 (11)3.2 系统需求分析 (11)3.2.1 业务需求分析 (11)3.2.2 用户需求分析 (12)3.2.3 功能需求分析 (12)第4章过程论述............................................................................. 错误!未定义书签。
贪吃蛇课程设计论文c

贪吃蛇课程设计论文c一、教学目标本课程的教学目标是使学生掌握贪吃蛇的基本概念、算法和编程技巧。
具体包括:1.知识目标:学生能够理解贪吃蛇游戏的原理和基本算法,了解其背后的数学和计算机科学知识。
2.技能目标:学生能够使用编程语言实现一个简单的贪吃蛇游戏,能够对游戏进行调试和优化。
3.情感态度价值观目标:通过学习贪吃蛇,学生能够培养对计算机科学的兴趣和热情,提高自我学习和解决问题的能力。
二、教学内容本课程的教学内容主要包括贪吃蛇的基本概念、算法和编程实现。
具体包括:1.贪吃蛇的基本概念:介绍贪吃蛇游戏的起源、规则和特点。
2.贪吃蛇的算法:讲解贪吃蛇游戏的算法原理,包括蛇的移动、食物的生成和碰撞检测等。
3.贪吃蛇的编程实现:通过编程语言实现一个简单的贪吃蛇游戏,包括游戏循环、用户输入和游戏逻辑等。
三、教学方法本课程的教学方法主要包括讲授法、讨论法和实验法。
具体包括:1.讲授法:通过讲解贪吃蛇的基本概念和算法,使学生掌握相关知识。
2.讨论法:通过分组讨论和分享,引导学生深入思考和探索贪吃蛇游戏的实现方法。
3.实验法:通过编程实践,使学生亲手实现一个简单的贪吃蛇游戏,提高其编程能力和问题解决能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
具体包括:1.教材:提供相关章节的学习资料,包括贪吃蛇的基本概念、算法和编程实现。
2.参考书:提供更深入的计算机科学知识和编程技巧,供学生自主学习和参考。
3.多媒体资料:通过视频、动画等形式,生动展示贪吃蛇游戏的原理和实现过程。
4.实验设备:提供计算机和编程环境,让学生能够实际操作和实验贪吃蛇游戏的编程实现。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
1.平时表现:通过观察学生在课堂上的参与度、提问和回答问题的情况,评估学生的学习态度和理解程度。
2.作业:布置相关的编程练习,评估学生的编程能力和对贪吃蛇知识的理解。
java贪吃蛇毕业论文

java贪吃蛇毕业论文本文将介绍贪吃蛇游戏的设计与实现,该游戏的主要功能包括游戏开始、游戏暂停、游戏结束、得分统计等。
基于Java 语言,采用面向对象的程序设计方法,构建了具有良好交互性的贪吃蛇游戏系统。
一、引言贪吃蛇是一个经典的小游戏,它在全世界范围内都受到玩家们的喜欢。
贪吃蛇这个小游戏有着简单的规则和良好的互动性,因此成为了许多程序员学习编程的入门教材。
本文旨在通过对贪吃蛇游戏的设计和实现,加深对Java编程语言的理解,提升面向对象程序设计的能力。
本文将介绍贪吃蛇游戏的整体框架设计、游戏流程设计、源代码分析等内容,希望对同学们学习Java编程有所帮助。
二、贪吃蛇游戏的设计与实现2.1整体框架设计首先,我们来看一下贪吃蛇游戏的整体框架设计。
贪吃蛇游戏的界面分为左右两部分,左边显示游戏画面,右边显示得分情况。
游戏开始后,蛇会出现在游戏画面的中央位置,游戏画面上还会随机出现食物。
如果蛇吃到了食物,那么得分就会增加,同时蛇也会变长。
如果蛇撞到了游戏画面的边界或者自己的身体,则游戏失败,游戏画面会出现“Game over”的提示。
贪吃蛇游戏的设计可以分为两个模块:游戏画面显示模块和游戏逻辑实现模块。
其中,游戏画面显示模块是用来将游戏运行时的状态显示在界面上,游戏逻辑实现模块则是通过对用户的操作产生游戏效果。
2.2游戏流程设计当用户点击游戏开始按钮后,游戏画面会显示出蛇的头部,然后蛇会按照一定的规则向前移动。
此时,用户可以通过按键控制蛇的移动方向,蛇吃到食物时,得分会增加,同时蛇的长度增加。
如果蛇撞到了游戏画面的边界或自己的身体,则游戏失败,游戏画面会出现“Game over”的提示。
如果用户点击游戏暂停按钮,则游戏就会暂停,并且再次点击按钮游戏就会恢复进行。
2.3源代码分析以下是源代码的分析,采用了面向对象的编程方式,将游戏画面、蛇、食物等各个元素都抽象成了对象。
下面我们就来看一下其中的一部分代码。
(1)GamePanel.java```javapublic class GamePanel extends JPanel {private Snake snake;//蛇private Food food;//食物private int score;//分数private int speed;//移动速度private Timer timer;//计时器public GamePanel() {snake = new Snake();food = new Food();score = 0;speed = 200;timer = new Timer(speed, new ActionListener() { @Overridepublic void actionPerformed(ActionEvent e) { snake.move();//蛇移动check();//检查游戏是否结束或吃到食物repaint();//重新绘制}});timer.start();//开始计时器}public void paint(Graphics g) {super.paint(g);snake.draw(g);//绘制蛇food.draw(g);//绘制食物g.drawString(\。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业论文论文题目贪吃蛇游戏的设计与实现院(系)名称计算机与信息工程学院专业名称计算机应用技术班级学生姓名学号指导教师姓名目录内容摘要: (1)关键词: (1)Abstract: (1)Key words: (1)1.游戏设计背景 (1)1.1游戏设计原理 (1)1.2游戏设计的运行环境 (1)2.游戏设计相关知识介绍 (3)2.1 Flash理论基础知识要点 (3)2.2面向对象编程 (4)2.3游戏制作中常用函数的属性与方法 (4)3. 制作贪吃蛇游戏的整体规划 (7)3.1贪吃蛇游戏的大致结构图 (7)3.2游戏设计整体构思 (8)3.3透视游戏设计的核心重点算法 (8)3.4游戏设计核心重点函数控制 (8)4. 游戏详细设计与核心技术 (8)4.1游戏的详细设计 (8)4.2游戏的核心技术 (10)5.贪吃蛇游戏设计总结 (14)参考文献 (15)致谢 (16)内容摘要:贪吃蛇游戏,因为制作简单,逻辑性较强,通常是学做游戏的必练的项目。
贪食蛇游戏是目前各种流行手机中附带的一款休闲小游戏。
Flash是Macromedia公司发布的制作高压缩性网络内容的专业标准动画软件。
随便打开一个网页,都能发现Flash动画的身影Flash动画作品已经充斥整个网络。
毫无疑问Flash 已经是制作网络动画的霸主。
透过现象看本质:游戏的制作与Flash的基础原理密不可分,同时也与制作者的良好修养密不可分,进而提高本身综合素质的的整体提高!关键词:原理运行环境理论基础详细设计核心技术Abstract:Snake game, because the production of simple logic is strong, often the game will learn to practice projects. Snake mobile game is all included with a popular casual games. Macromedia Flash is the production company released the contents of high-compression network of professional standards for animation software. Casually open a web page, Flash animation can be found in the figures of Flash animation has flooded the entire network. There is no doubt that Flash is already the dominant animation production network. Look beyond the surface: the game's basic principles of production and Flash are inseparable, but also with the producers of good training are inseparable, and thus improve their overall quality of the overall improvement!Key words:Principle operating environment Theoretical basis Detailed design Core Technology1.游戏设计背景随着科技与经济的快速发达,知识经济的快速增长,娱乐逐渐变成人与智能的交流。
智能化的娱乐游戏在网络里愈来愈好,众多的游戏不胜枚举。
比如益智类的小游戏、腾讯游戏、网页游戏、格斗游戏、模拟游戏等,尤其是最近网络上特别流行的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和FLEX。
1.2.2运行环境1.2.3开发语言用户要进行Flash开发,要接触是ActionScript(简称AS),ActionScript 程序语言是用于Flash开发的交互语言。
ActionScript有三种语言编写风格,这就是AS1、AS2和AS3。
AS1遵循ECMA-262第3版所制定的规范,AS2遵循即将发布的ECMA-262第4版规范,但它们的运行环境只有一种,即Flash Player VM(Adobe称为AVM1,AVM是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文件中的鼠标指针(光标)。
默认情况下鼠标指针是可见的,但是用户可以将其隐藏并实现用影片剪辑创建的自定义指针。
2.3.2 Key类Key类是不通过构造函数即可使用其方法和属性的顶级类。
使用Key类的方法可生成用户能够通过标准键盘控制的界面,该类的属性是常量,表示控制游戏时最经常使用的键。
2.3.3 Button类按钮是Flash影片中实现交互功能最常见的对象,SWF文件中的所有按钮元件都是对象的实例,用户可在属性检查器中指定按钮实例名称,并通过动作脚本使用Button法和属性来操纵按钮。
2.3.4 MovieClip类MovieClip中类的方法提供的功能与定位影片剪辑的动作所提供的功能相同,无需使用构造函数方法即可调用MovieClip类的方法,用户只需在语法中按名称引用影片剪辑实例即可。
MovieClip类的事件处理函数的八种状态2.3.5 Sound类与Math类Math类的方法和属性可以访问和处理数学常数和函数。
Math类的所有属性和方法都是静态的,并且必须使用语法Math.method(parameter)或Math.constant来调用。
游戏中食物的随机出现就是利用了math函数里的随机函数。
游戏里的背景音乐还有对声音图标的控制也就是通过面向对象编程里的Sound类函数来控制实现的。
2.3.6 Array类通过Array 类用户可以访问和操纵数组。
数组是一个对象,其属性由表示该属性在数组中位置的数字来标识。
此数字称为“索引”。
所有数组都从零开始,这意味着数组中的第一个元素为 [0],第二个元素为 [1],依此类推。
3. 制作贪吃蛇游戏的整体规划3.1贪吃蛇游戏的大致结构图3.2游戏设计整体构思首先场景规划,主要有两个:一个是游戏封面,一个是游戏运行界面。
其次是电影影片剪辑,主要有蛇,食物,背景设计等,按钮及文字属性都有自己的实例名,便于脚本控制。
最后对整体的进行核心代码编写与控制。
在软件环境里运行并调试,发现问题,分析并解决。
最后发布游戏。