欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    本科毕业设计基于java的打砖块游戏.docx

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

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

    本科毕业设计基于java的打砖块游戏.docx

    1、本科毕业设计基于java的打砖块游戏北方民族大学学士学位论文 论文题目 基于JAVA的打砖块游戏开发 系(部)名 称: 计算机科学与工程学院 学 生 姓 名: 专 业: 软件工程 学 号: 指导教师姓名: 论文提交时间: 2014-5-7 论文答辩时间: 2014-5-17 学位授予时间: 北方民族大学教务处制基于JAVA的打砖块游戏开发摘 要打砖块是一款堪称经典的小游戏,在掌上游戏机上和许多手机上都能发现这个小游戏。游戏基本内容是玩家通过控制一个能够左右移动的挡板,反弹正在运动中弹球,使之改变移动的方向,用小球消除游戏窗口里面的的砖块,然后到达下一关,在障碍物被消除的过程中,可能会产生一些能

    2、改变挡板或者小球状态的物品,例如:挡板变长、变短,小球威力加强等等。本系统是一个基于Java语言平台的打砖块游戏。主要任务是设计打砖块游戏的算法,并使用JAVA语言编写程序,最终完成游戏编程,并使之能够正确运行。主要是小球的碰撞检测和运动轨迹的算法,碰撞部分可以将小球看成一个矩形,当矩形的边界坐标与砖块、挡板、墙壁等一样时,可以判断为进行了碰撞,而运动轨迹只要在碰撞后将X轴或Y轴取反就可以了。本文第一章阐述了选题目的及Java游戏目前的发展现状。第二章介绍了Java语音的特点和基于Java游戏开发的相关的技术。第三章详细介绍了打砖块游戏,包括游戏的规则和期待的效果等。第四章进行打砖块游戏的具体

    3、设计与实现,包括界面的设计,类的设计,算法的设计等等。第五章对游戏进行运行和测试,以期检测游戏中的各种问题。期望通过本游戏实例掌握小型Java游戏开发和Java编程的基础的知识和技巧,使自己具备开发Java游戏基本能力。关键字:java,游戏设计,测试,打砖块,算法 Arkanoid java-based development AbstractArkanoid is a small classic games on handheld game consoles and many mobile phones can be found on this little game. The basic

    4、 content of the game by controlling a player can move around the baffle, the rebound is in motion pinball , making changes in the direction of movement , eliminating the bricks with a small ball inside the game window , then reach the next level , the obstacles process is eliminated , the shutter ma

    5、y be some change in the state of pellets or articles such as : the paddle length , shorter, and so enhance the power of the ball .This system is a Java-based platform Arkanoid game. The main task is to design algorithms Arkanoid game and using JAVA programming language , the final completion of game

    6、 programming , and enable it to run correctly. The main collision detection algorithm and the trajectory of the ball , the ball collision portion may be regarded as a rectangle, the coordinates of the boundary rectangle when bricks , baffles , such as a wall , the collision can be judged , and exerc

    7、ise Just after the collision trajectory X -axis or Y -axis inverted it.The first chapter describes the purpose of the topic and the current status of the development of Java games , the second chapter introduces the Java -based voice features and related technologies Java game development , the thir

    8、d leg detailing Arkanoid games, including games rules and expectations effects, Chapter IV specific design and implementation of Arkanoid games, including interface design , class design , algorithm design, etc., the fifth chapter of the game running and testing in order to detect game various probl

    9、ems . Expected by the game master instance small Java game development and Java programming based knowledge and skills , so that they have the basic ability to develop Java games .Keywords : Java, Game Design, Game Testing , Arkanoid, The Algorithm第一章 绪论1.1 选题的目的和意义Java 编程语言具有非常多的优点,它简单而健壮,高性能又可移植,面

    10、向对象、多线程和动态的语言等等。随着Java语言的发展,如今,Java已经被广泛的运用于多种领域。而且对基于Java语言的游戏需求量也越来越大。随着人们生活质量的不断提高以及个人电脑和网络的普及,人们的业余生活质量要求也在不断提高,选择一款好玩,精美,画面和音质,品质优良的休闲游戏已经成为一种流行的休闲方式。可以说在人们的日常生活中,除了工作、学习,玩自己喜欢的游戏正在成为一种时尚。休闲类游戏可以说是最受各个年龄段的人们欢迎的一类游戏,可以想象大量六七十岁的老人都玩过打砖块,休闲类游戏给许多玩家们留下了一个美好的回忆。打砖块游戏是一个很常见的游戏,游戏规则也非常简单。本毕业设计使用java语言

    11、来开发一个打砖块游戏。此项目的目的在于通过完成游戏项目,加深对Java的语法、算法等多方面的学习,深入了解图形用户界面的设计,并且熟练的使用编程软件,将书本上的理论知识应用到实践当中,来拿这款打砖块小游戏来验证下自己的学习的理论知识是否扎实。希望通过这一次的毕业设计,让我在程序的设计和算法的设计上有进一步的认识,然后获得一定提高。通过设计增加了我们的实际动手能力,对于我们以后工作能力和信心的培养有重要意义,进而与社会所需的人才相接轨。更好的完善自己!游戏是一种艺术,而Java是一种技术,集合不同的艺术门类,并把艺术与技术相结合,完成游戏的开发,游戏可以让人在疲倦或休闲之时获得轻松而又愉快的享受

    12、。所以,开发出大家都比较喜欢的,高品质的,简单容易好玩的休闲游戏,将会受到人们的普遍欢迎。让人们在工作学习之余,享受游戏的快乐,也是一款游戏真正成功的意义。1.2游戏产业的发展现状游戏的产业是新时代发展起来的行业,它的独特的力量使它在当今的娱乐领域占有一块非常大的比重,当前的种种原因使得用户可以选择的娱乐活动变少,这是游戏产业发展起来的一个原因,但是更大的原因是游戏具有非常大的吸引力,它可以让玩家消磨时间,可以让玩家在紧张的工作后获得放松,可以让玩家们相互沟通认识更多的朋友,它可以跨越地区的限制,使人们在世界的任意角落都可以相互娱乐。游戏产业作为“第四产业”,更是促进高新技术不断升级发展,这也

    13、使之成为经济增长的一个支撑点 如今,小游戏、网页游戏深受广大网民欢迎,它方法简单,不需要繁复的注册下载等过程,而且游戏不乏经典。随着手机产业的迅速发展,传统网游占据的空间不断的缩减,而网页游戏无需客户端的特性,也使得 Web 游戏可能会主宰网络游戏的市场。目前,知识数据库广泛的被应用在企业系统,金融也等等封面,但是游戏知识数据下载还在处展初期。如果利用游戏知识库的话,我们能更好的实现游戏规则处理。开发出一款游戏后,再开发其他的同种类型的游戏,我们仅仅把游戏规则作改变,就能完成全部游戏的开发。通过游戏知识数据库,我们可以快速的开发多款同类游戏,大大地缩减了游戏开发周期,游戏知识数据库在将来很有前

    14、景。第二章 游戏开发的环境及相关技术本系统是基于Java语言开发的打砖块游戏,使用Eclipse作为开发工具,搭建游戏的开发环境,在整个系统的设计与实现过程中,需要使用到Java编程语言的基本知识,包括GUI、算法、线程等,并遵循它的一系列相关规范。2.1 开发环境 操作系统:Microsoft Windows7 开发语言:Java JDK版本:JDK1.7 2.2 Java语言特点1. Java语言是强制面向对象的。Java语言提供了类和继承和借口原语,为了方便,只能允许类间的单继承,但是,它支持接口的多继承,而且支持类和接口之间的实现机制。Java是纯面向对象的。2Java语言是健壮的。J

    15、ava会强类型,异常处理和垃圾的自动收集等是Java程序健壮性的重要保证。Java丢弃了指针,是个非常明智的决定。安全检查机制使Java具有更强的健壮性。3.Java语言是可移植的。Java可移植性源于体系结构的中立。 Java严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性。 4.Java语言是解释型的。Java程序在Java平台上被编译为字节码格式(class文件),然后就可以在实现Java平台的所有系统中运作。Java平台中的Java解释器对节码进行解释执行,执行过程中需要的类在联接阶段把执行过程中需要的类载入到运行环境中。5.Java语言是原生支持多线程的。Jav

    16、a的线程是一种特殊的对象,由Thread类或者它的子(孙)类建立。另外Thread类实现了Run able接口,所以,每个线程均有它独自的run方法,run方法中包含了运行线程所需代码。线程活动由方法来控制。Java语言可以同步运行多个线程,将提供多线程同步机制。2.3 GUI介绍图形用户界面(Graphical User Interface,简称 GUI)将计算机用户的界面用图形显示。图形界面相对于命令行界面,更加简单直观,更容易使用户在视觉上接受。GUI的广泛应用,可以说是计算机发展的重大成就,让非专业用户也可以流畅的使用计算机。人们可以通过菜单、界面、按钮等途径来进行方便的控制,取代了大

    17、量的需要死记硬背的命令。而嵌入式GUI几个基本方面的要求如下:轻便、资源占用率少、高性能、高可靠、方便移植、可以配置。第三章 打砖块游戏介绍打砖块游戏(英文:Arkanoid)是一款堪称经典的小游戏,曾经流行在老式掌上游戏机上面。这款游戏上手非常简单,操作简单又变换无,十分耐玩,所以它一出现很快便风靡一时。3.1 打砖块游戏的规则打砖块游戏的规则比较简单,游戏基本内容是玩家通过控制一个能够左右移动的挡板,反弹正在运动中的球,使之改变移动的方向,用小球消除游戏窗口里面的砖块,然后到达下一关,在障碍物被消除的过程中,可能会使小球和挡板产生一些变化,例如:挡板变长、变短,小球威力加强等等。下面对游戏

    18、的规则做一个详细的说明:(1)游戏主界面,是一个的矩形区域,固定其大小:宽度为400,高度为500;(2)挡板位于界面最下方,可以水平移动,挡板会将下落的小球反弹,让小球继续运动;(3)砖块位于界面的上方,每一关的数量和排列方式都不同。(4)小球会在界面上、左、右边界和挡板、砖块之间来回弹跳,小球碰到边界和挡板会反弹,碰到砖块会将砖块消除再反弹。如果小球掉落到挡板下方,会失去生命,小球生命值为0时游戏结束。(5)小球每击碎一块砖块都会增加分数。(6)有一些特殊颜色的砖块,当小球击碎塔门时会产生各种变化,比如小球速度加快减慢,或者是挡板的长度增加或减短。打砖块游戏非常经典,但是版本也很多,某些规

    19、则可能不同,但最基本的规则是不会改变的。3.2 打砖块游戏预期的效果打砖块游戏系统界面的布局应尽可能的做到合理、美观。具体针对本次设计,游戏的基本要求包括下面几点:(1)游戏基本功能(方块的操作):挡板左右移动、发射小球等,要求用鼠标或者方向键都能操作。(2)游戏界面:游戏界面要显示小球的生命值(剩余小球数量),得分,关卡。(3)游戏随关卡等级提升使难度有所增加。(4)游戏分数的统计。(5)暂停游戏/继续游戏、退出游戏。(6)砖块消除,挡板与小球碰撞,关卡升级都会有不同的声音。(7)游戏能流畅的运行游戏启动后,点击鼠标或者按空格键,发射小球,小球碰到砖块会将砖块消除,并同时增加得分,清除掉所有

    20、砖块,进入下一关,通过最后一关后游戏胜利,如果挡板没有在小球下落时挡住小球,小球生命值减少,小球生命值为0时,游戏结束。 第四章 打砖块游戏的设计与实现系统设计是经过系统分析,然后由抽象至具体的过程,本阶段的主要目标是把在分析阶段中的抽象概念化作能够实现,使之成为有具体功能的模块,提供支持给系统代码设计。在系统设计的阶段种,应该尽可能全面的思考全系统的功能与需求,由于情况的不同,有时还要考虑到系统性能。打砖块游戏的画面简单,功能也不怎么复杂,系统资源占用很少,所以,在这里不过于考虑性能需求,下面对游戏的详细设计过程做一个说明。4.1 游戏模块设计4.1.1 游戏界面绘制模块界面绘制模块的作用是

    21、负责游戏界面的显示。游戏界面为一矩形窗口。游戏界面内容:1. 游戏信息:小球生命值显示、游戏得分、游戏等级,随着游戏不断更新;2. 游戏功能:砖块、小球、挡板;3. 游戏提示信息,当游戏开始后会隐藏。游戏界面如图4.1,灰色区域为游戏功能区图4-1 游戏界面设计4.1.2 游戏操作模块游戏操作模块,包括砖块的生成,挡板的生成,挡板的移动,小球的运动,消除砖块,游戏得分,游戏等级等。要特别注意小球与挡板移动后会不会超出操作区域等问题。游戏过程中,玩家是通过键盘或鼠标控制游戏。玩家输入操作命令,程序接收并做出响应。下面列出鼠标、键盘的按键和对应的功能:(1)左右方向键或鼠标左右移动:挡板左右移动;

    22、(2)空格键或鼠标左键:弹出小球,开始游戏(3)R键:游戏重新开始;(4)CTRL键:发射子弹(子弹可以消除小球)。4.2 类的设计本论文共设计了7个类,分别是GameFrame, GamePanel, Pad,Block,Bullet,Ball,SoundPlayer类,每个类具体如下:(1)GameFrame类:游戏窗口类,如图4-2; 图4-2 GameFrame类的方法(2)GamePanel类:游戏界面类,如图4-3;图4-3 GamePanel类的方法(3)Pad类:挡板类,如图4-4;图4-4 Pad类的方法(4)Block类:砖块类,如图4-5; 图4-5 Block类的方法(

    23、5)Bullet类:子弹类,如图4-6;图4-6 Bullet类的方法(6)Ball类:小球类,如图4-7;图4-7 Ball类的方法 (7) SoundPlayer:声音控制类,如图4-8;图4-8 SoundPlayer声音类GameFrame类是游戏窗口启动类,在启动时会调用GamePanel类,绘制游戏启动界面,GamePanel类继续调用其他类,最终实现游戏功能。4.3代码实现这一部分将会对游戏中的类的功能做出介绍,并给出关键部分的代码实现。4.3.1 GameFrame类GameFrame是创建一个JFrame主界面,设置主界面的标题、长与宽、窗口监听、画板等属性、窗口监听这是一个

    24、标准的游戏窗口绘制类,可以在多处使用。【代码实现】 public class GameFrame public GameFrame() Frame app = new Frame(打砖块); app.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); app.setLocation(200,100); GamePanel gamePanel = new GamePanel(); app.add(gamePanel,BorderLayout.CENTER

    25、); app.pack(); app.setVisible(true); gamePanel.gameStart(); public static void main(String args) new GameFrame(); 4.3.2 GamePanel类GamePanel类是游戏界面类,这个类处理了这个游戏中的大部分业务功能(1)游戏提示。打开游戏后,在游戏界面中间显示 “Use Keyborad Or Mouse to Control The Pad”,游戏通关后,在有些界面中间显示“YOU WIN”和“Press R To Restart Game”。如图4-9本段代码使用if语句,

    26、对游戏状态判断,初始时和游戏胜利时显示不同的提示,使用setColour和drawString方法进行文字的绘制图4-9 游戏界面的提示信息【代码实现】public void tips() graphics.setColor(Color.GRAY); if (tips = true) graphics.drawString(Use mouse or keyboard to control the pad, width / 2 - 200, height / 2 + 40); if (win = true) graphics.setColor(Color.white); graphics.dra

    27、wString(YOU WIN, width / 2 - 40, height / 2 + 40); graphics.drawString(Press R to Restart Game, width / 2 - 110, height / 2 + 70); (2)游戏界面的设置在游戏界面上显示生命值、得分、等级的信息。如图4-10本段代码用到了GradientPaint类,可以控制颜色的渐变效果,其构造函数GradientPaint(float x1, float y1, Color color1, float x2, float y2, Color color2)。图4-10 游戏界面生

    28、命、得分、等级【代码实现】 /绘制生命值、得分、等级信息 graphics.drawString(生命值,0,37); graphics.drawString(得分+Score,200,37); graphics.drawString(等级 + level, 400, 37); Graphics2D graphics2 = (Graphics2D)graphics; for(int i = 1; i = 4) graphics.setColor(Color.white); graphics.setFont(new Font(Arial,Font.BOLD,40); graphics.drawS

    29、tring(You Lose!, width/2 - 50, height/2); graphics.setFont(new Font(Arial,Font.BOLD,20); graphics.drawString(Press R to restrart, width/2-70, height/2 + 40); (3)判断游戏是否结束,计算剩余砖块的数目,第一关时,如果砖块数目为0,游戏继续进行到第二关,第二关时,如果砖块数目为0,游戏结束。 游戏得分的计算,每个砖块计10分,得分为:(砖块总数-当前数量)*10【代码实现】public void isGameOver() int count

    30、Block = 0; for(int i = 0; i = block.blockNumber; i+) if(block.existi = true) countBlock+; score=( block.blockNumber-countBlock+)*10 if(countBlock = 0) if (level = 2) reStart = false; gameOver = true; ballMove = false; win = true; if (level = 1) sound.loadSound(Sounds/level2.wav); sound.playSound(); level = 2; ballnum = 3; ball = new Ballballnum; reSetGame(); fail();


    注意事项

    本文(本科毕业设计基于java的打砖块游戏.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开