您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > Flappybird游戏设计
四川师范大学成都学院高级语言程序课程设计Flappybird游戏程序设计学生姓名向华峰学号2014101007所在学院通信工程学院专业名称通信工程班级2014级移动通信方向指导教师周小丽成绩四川师范大学成都学院二○一六年十二月四川师范大学成都学院课题报告II课程设计任务书学生姓名向华峰学生学号2014101007学生专业通信工程学生班级2014级移动通信方向指导教师周小丽职称助教发题日期2016年11月18日完成日期2016年12月30日设计题目Flappybird游戏设计设计目的:1、掌握java语言编程2、了解简单游戏设计思路及方法3、学习用java语言编写简单程序4、了解用java语言处理图片具体任务及要求:1、用java完成flappybird程序设计。2、游戏包括加载、引导、开始、游戏、结束环节。3、记分牌、记录等设计。4、游戏分为白天和黑夜两个场景。5、按时完成课题设计,总结。课程设计进度安排:序号内容安排时间1查阅文献资料,写任务书10.23—11.32做出需求分析,列出大纲11.30—12.33列出可行的方案,并讨论修改12.2—12.104完成初稿12.10—12.155修改完善论文,总结12.15—12.30课程设计参考文献:[1]冯燕奎、赵德奎:JSP实用案例教程[M],清华大学出版社,2004.5,P70-P100[2]王家华:软件工程[M],东北大学出版社,2001.3,P303[3]王宜贵:软件工程[M],机械工业出版社,2002,P20-P79[4]张洪斌:java2高级程序设计[M],中科多媒体出版社,2001.11,P85-P90[5]孙鑫:JavaWeb开发详解[M,电子工业出版社,2006,P189-P274指导教师签字院长审核签字四川师范大学成都学院课题报告IIIFlappybird游戏程序设计内容摘要:flappybird是一款形式简易但难度极高的休闲游戏。玩家需要不断控制点击屏幕的频率来调节小鸟的飞行高度和降落速度,让小鸟顺利通过画面右方的管道缝隙。如果小鸟不小心擦碰到了管子的话,游戏便宣告结束。本设计介绍了电脑版的该游戏的大概框架以及具体源程序代码。关键词:游戏设计程序FlappybirdgameprogrammingAbstract:Flappybirdisaformofsimplebutverycasualgames.Playersneedtokeepcontrolofthefrequencyoftheclickonthescreentoadjusttheflyingheightofthebirdsandlandingspeed,andletthebirdpipeaperturepassthepicturetotheright.Ifthebirdaccidentallybrushagainstthepipe,thegamehasended.Thisdesignintroducedthecomputerversionofthegameaboutframeworkandspecificsourceprogramcode.Keywords:GameDesignProgram四川师范大学成都学院课题报告IV目录前言.................................................................11游戏设计思路.......................................................12游戏设计过程.......................................................13图片素材下载.......................................................34加载界面设计.......................................................45游戏界面设计.......................................................46游戏设计...........................................................44.1场景设计......................................................44.2游戏中界面....................................................64.3游戏结束界面..................................................67效果图.............................................................8参考文献.............................................................17四川师范大学成都学院课题报告1Flappybird游戏程序设计前言《flappybird》是由来自越南的独立游戏开发者DongNguyen所开发的作品,该游戏于2013年5月上线,2014年年初迎来火爆之势。目前,该游戏全球下载或已超过5千万次。由于本游戏的成功受到质疑,研发者迫于压力,于2014年2月8日意外宣布游戏下线。游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍,而这只鸟其实是根本不会飞的„„所以玩家每点击一下小鸟就会飞高一点,不点击就会下降,玩家必须控制节奏,拿捏点击屏幕的时间点,让小鸟能在落下的瞬间跳起来,恰好能够通过狭窄的水管缝隙,只要稍一分神,马上就会失败阵亡。cocos2dxeditor,它是开发跨平台的手机游戏工具,运行window系统上,javascript脚本语言,基于cocos2d-x跨平台游戏引擎,集合代码编辑,场景设计,动画制作,字体设计,还有粒子,物理系统,地图等等的,而且调试方便,和实时模拟。1游戏设计思路游戏场景:游戏主要有三个场景组成,开始场景、主场景、结束场景主场景:主场景是由上下两个水管和水管之间空隙组成,间隙时一定的,下水管可以是随机出来的,然后上水管可以由下水管的数据计算出。小鸟:每次按一下向上小鸟坐标就向上加一定的高度,释放后就自由落下游戏成绩:当小鸟没通过一个水管的时候分数就自加一定分值。死亡判断:当小鸟碰到水管或者是地面的时候,小鸟死亡,游戏结束。判断到小鸟坐标与水管坐标或者地面坐标在一定的范围内就可以判断其死亡。2游戏设计过程刚想到做这个游戏。用线程来让小鸟掉下来,用鼠标监听来控制小鸟的飞行,当时也没把各个对象抽象出来,就一个劲把它放到界面的那个类里面,然后又把地面、水管等陆续加进去,后来随着做的深入,发现这样是行不通的。因为做这个游戏还要拿到他的坐标判断游戏是否结束,现在的问题是把小鸟、水管、地面等都放到一个类里四川师范大学成都学院课题报告2面,根本就不方便往下做,因为这样拿不到他们的数据,比如说他们的坐标等。在上面这样做行不通的时候,只有停下来思考怎么做其实很很明显,要把各个对象抽象成为一个类(当然可能还有更好的办法,但是我觉得现在办法是行的通的),这样一个类就只管一个对象,比如说,小鸟一个类、水管一个类、地面有事一个类,这样就能更好的做下去,各个类之间关系也不会那么,让每个类具有自己单一的功能,体现低耦合的思想。做小鸟是比较简单的,毕竟一个线程就能轻松搞定……但是现在水管应该怎么做呢?玩过这个游戏的人都知道,水管是上下对着各一根,上下水管之间的间距也是一定的,而且水管是随机出现的,这样下水管就可以的位置也就能确定了,因为知道游戏面板的高度和上下水管的间距,所以可以确定下水管的位置。具体怎么实现,我下面会说明。还有一步比较重要就是如何判断游戏的输赢。判断游戏的输赢也可以分为两种情况,一种是小鸟掉到地上了;一种是小鸟碰到水管了。还有一个就是计算分数了,这个可以直接写在判断输赢的类里面,只要小鸟没越过一根水管,就令一个数加一,并显示到游戏面板上就可以了。当然并不是这个游戏就只有那么简单的几步。还有其他的部分,比如说,开始的场景、结束的场景,如果真的要把做的很完美还有一点点细节需要考虑。四川师范大学成都学院课题报告33图片素材下载在编写程序之前,我们必须搜集相应的素材。可以在网上收索,当然也可以自己画。完整的flappybird游戏需要图片有:背景2张(黑白场景)、小鸟、地面、上下管道以及记分牌等。注:为了让画面像素更高,须收集更多的运动的小鸟照片。然后将收集到的照片分类备用,具体素材如下图所示:四川师范大学成都学院课题报告44加载界面设计此界面是游戏的引导界面,相当于是一个叫玩家等待界面。1秒过后进入游戏主界面。首先程序界面初始化,然后intini(void);intgame(void);intshow(void);然后获得窗口句柄HWNDhWnd=getHWnd();设置主页面的宽和高initgraph(384,512);在Windows中,句柄是一个系统内部数据结构的引用。例如当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口最小化等等。实际上许多WindowsAPI函数把句柄作为它的第一个参数,如GDI(图形设备接口)句柄、菜单句柄、实例句柄、位图句柄等,不仅仅局限于窗口函数。换句话说,句柄是一种内部代码,通过它能引用受系统控制的特殊元素,如窗口、位图、图标、内存块、光标、字体、菜单等。5游戏界面设计游戏界面为该游戏的设计难点,包括动画、碰撞检测等等。分为游戏前界面、游戏中界面、以及结束界面。游戏前界面此界面与主页面相似,但没有开始按钮,在界面右边多了2根管道,程序现在就检测玩家是否在游戏界面内点击了鼠标,如果是,那么就进入了游戏中界面。6游戏设计4.1场景设计如下图;主要分三层,开始场景、主场景、游戏结束场景,通过显示隐藏控制三个场景的切换四川师范大学成都学院课题报告5图4-1开场景图4-2主场景图4-3游戏结束场景四川师范大学成都学院课题报告64.2游戏中界面首先,小鸟在向前飞,其实是底部的路和水管在向左移动,相对的你就感觉小鸟在向右飞了;路循环移动代码:MainLayer.prototype.groundRun=function(){varaction1=cc.MoveTo.create(0.5,cc.p(-120,0));varaction2=cc.MoveTo.create(0,cc.p(0,0));varaction=cc.Sequence.create(action1,action2);this.ground.runAction(cc.RepeatForever.create(action));}4.3游戏结束界面该步骤包括碰撞和落地的算法设计、分数显示、是否重来等小模块。碰撞后,小鸟先下落,游戏结束场景显示,碰撞判断、显示分数的算法为:MainLayer.prototype.birdFallAction=function(){this.gameMode=OVER;this.bird.stopAllActions();this.ground.stopAllActions();varbirdX=this.bird.getPositionX();varbirdY=this.bird.getPositionY();vartime=birdY/2000;this.bird.runAction(cc.Sequence.create(cc.DelayTime.create(0.1),cc.Spawn.create(cc.RotateTo.create(time,90),cc.MoveTo.create(time,cc.p(
本文标题:Flappybird游戏设计
链接地址:https://www.777doc.com/doc-4520545 .html