基于java的打砖块游戏毕业论文内容摘要:
设计与实现 系统设计是经过系统分析,然后由抽象至具体的过程,本阶段的主要目标是把在分析阶段中的抽象概念化作能够实现,使之成为有具体功能的模块,提供支持给系统代码设计。 在系统设计的阶段种,应该尽可能全面的思考全系统的功能与需求,由于情况的不同,有时还要考虑到系统性能。 打砖块游戏的画面简单,功能也不怎么复杂,系统资源占用很少,所以,在这里不过于考虑性能需求,下面对游戏的详细设计过程做一个说明。 游戏模块设计 游戏界面绘制模块 界面绘制模块的作用是负责游戏界面的显示。 游戏界面为一矩形窗口。 游戏界面内容: 1. 游戏信息:小球生命值显示、游戏得分、游戏等级,随着游戏不断更新; 2. 游戏功能:砖块、小球、挡板; 3. 游戏提示信息,当游戏开始后会隐藏。 游戏界面如图 ,灰色区域为游戏功能区 基于 Java 的打砖块游戏开发 8 图 41 游戏界面设计 游戏操作模块 游戏操作模块,包括砖块的生成,挡板的生成,挡板的移动,小球的运动,消除砖块,游戏得分,游戏等级等。 要特别注意小球与挡板移动后会不会超出操作区域等问题。 游戏过程中,玩家是通过键盘或鼠标控制游戏。 玩家输入操作命令,程序接收并做出响应。 下面列出鼠标、键盘的按键和对应的功能: ( 1)左右方向键或鼠标左右移动:挡板左右移动; ( 2)空格键或鼠标左键:弹出小球,开始游戏 ( 3) R 键:游戏重新开始; ( 4) CTRL 键:发射子弹(子弹可以消除小球)。 类的设计 本 论 文 共 设 计 了 7 个 类 , 分 别 是 GameFrame, GamePanel, Pad,Block,Bullet,Ball,SoundPlayer 类,每个类具体如下: 基于 Java 的打砖块游戏开发 9 ( 1) GameFrame 类:游戏窗口类,如图 42; 图 42 GameFrame类的方法 ( 2) GamePanel 类:游戏界面类 ,如图 43; 图 43 GamePanel类的方法 ( 3) Pad 类:挡板类,如图 44; 图 44 Pad类的方法 ( 4) Block 类:砖块类,如图 45; 基于 Java 的打砖块游戏开发 10 图 45 Block类的方法 ( 5) Bullet 类:子弹类,如图 46; 图 46 Bullet类的方法 ( 6) Ball 类:小球类,如图 47; 图 47 Ball类的方法 (7) SoundPlayer:声音控制类,如图 48; 图 48 SoundPlayer声音类 GameFrame 类是游戏窗口启动类,在启动时会调用 GamePanel 类,绘制游戏启动界面, GamePanel 类继续调用其他类,最终实现游戏功能。 代码实现 这一部分将会对游戏中的类的功能做出介绍,并给出关键部分的代码实现。 GameFrame 类 GameFrame 是创建一个 JFrame 主界面,设置主界面的标题、长与宽、窗口基于 Java 的打砖块游戏开发 11 监听、画板等属性、窗口监听 这是一个标准的游戏窗口绘制类,可以在 多处使用。 【代码实现】 public class GameFrame { public GameFrame() { Frame app = new Frame(打砖块 )。 (new WindowAdapter() { public void windowClosing(WindowEvent e) { (0)。 } })。 (200,100)。 GamePanel gamePanel = new GamePanel()。 (gamePanel,)。 ()。 (true)。 ()。 } public static void main(String args[]) { new GameFrame()。 } } GamePanel 类 GamePanel 类是游戏界面类,这个类处理了这个游戏中的 大部分业务功能 ( 1) 游戏提示。 打开游戏后,在游戏界面中间显示 “ Use Keyborad Or Mouse to Control The Pad” ,游戏通关后,在有些界面中间显示“ YOU WIN”和“ Press R To Restart Game”。 如图 49 本段代码使用 if语句,对游戏状态判断,初始时和游戏胜利时显示不同的提示,使用 setColour和 drawString方法进行文字的绘制 基于 Java 的打砖块游戏开发 12 图 49 游戏界面的提示信息 【代码实现】 public void tips() { ()。 if (tips == true) { (Use mouse or keyboard to control the pad, width / 2 200, height / 2 + 40)。 } if (win == true) { ()。 (YOU WIN, width / 2 40, height / 2 + 40)。 (Press R to Restart Game, width / 2 110, height / 2 + 70)。 } ( 2)游戏界面的设置 在游戏界面上显示生命值、得分、等级的信息。 如图 410 本段代码用到了 GradientPaint类,可以控制颜色的渐变效果, 其构造函数GradientPaint(float x1, float y1, Color color1, float x2, float y2, Color color2)。 图 410 游戏界面生命、得分、等级 【代码实现】 //绘制生命值、得分、等级信息 (生命值 ,0,37)。 基于 Java 的打砖块游戏开发 13 (得分 +Score,200,37)。 (等级 + level, 400, 37)。 Graphics2D graphics2 = (Graphics2D)graphics。 for(int i = 1。 i = 4 fallTimes。 i++) { GradientPaint whiteToGray = new GradientPaint(i*40,20,i*40+20,40,)。 (pinkToRed)。 (i*40,20,20,20)。 } //失败次数超过四次,提示游戏失败。 if(fallTimes = 4) { ()。 (new Font(Arial,40))。 (You Lose!, width/2 50, height/2)。 (new Font(Arial,20))。 (Press R to restrart, width/270, height/2 + 40)。 } } ( 3) 判断游戏是否结束 ,计算剩余砖块的数目,第一关时,如果砖块数目为 0,游戏继续进行到第二关,第二关时,如果砖块数目为 0,游戏结束。 游戏得分的计算,每个砖块计 10分,得分为:(砖块总数 当前数量) *10 【代码实现】 public void isGameOver() { int countBlock = 0。 for(int i = 0。 i =。 i++) { if([i] == true) { countBlock++。 score=( ++)*10 } } if(countBlock == 0) { if (level == 2) { reStart = false。 基于 Java 的打砖块游戏开发 14 gameOver = true。 ballMove = false。 win = true。 } if (level == 1) { (Sounds/)。 ()。 level = 2。 ballnum = 3。 ball = new Ball[ballnum]。 reSetGame()。 } } fail()。 } ( 4) 键盘按键设置。 按键控制挡板的移动,当游戏正常进行时,按空格键使小球开始移动,按下左右方向键,使挡板左右移动,按下空格键时,小球开始运动,按下 R键时,游戏重新开始。 【代码实现】 public void keyPressed(KeyEvent e) { //ASCII码 int keycode = ()。 if(keycode==){ if(!gameOver) { Bullet bul=new Bullet(this,pad,block)。 (bul)。 =true。 =。 =。 } } if (keycode == ) { padMoveRight = true。 } 基于 Java 的打砖块游戏开发 15 if (keycode == ) { padMoveLeft = true。 } if (keycode == ) { for (int i = 0。 i ballnum。 i++) { ball[i].ballMove = true。 } tips = false。 } if (keycode == ) { level = 1。 reSetGame()。 reStart = true。 gameOver = false。 fallTimes = 0。 ballNumber = 2。 } } public void keyReleased(KeyEvent e) { int keycode = ()。 if (keycode == ) { padMoveRight = false。 } if (keycode == ) { padMoveLeft = false。 } } ( 5) 鼠标设置 (控制挡板移动),分别设置第一关和第二关的挡板移动速度,设置挡板不能超过边界 当挡板的坐标超出左边界时,强制其坐标为 0,挡板超出右边界时,强制其坐标为(界面宽度 挡板长度) 【代码实现】 public void mouseMoved(MouseEvent arg0) { if (!gameOver) { if (level == 1) { 基于 Java 的打砖块游戏开发 16 = () 75。 } else = () 60。 if ( + = width) { = width。 } if ( = 0) { = 0。 } } } Pad 类 Pad 类是挡板类,主要设计挡板的大小、颜色和移动的速度与方向。 挡板的画法,确定挡板左上角的坐标和挡板的高度与宽度,就可以画出,初始位置设为游戏界面中间,距离下边界 30,界面宽为 width,高为 height,所以挡板初始位置为: (( )/2,( 30)) ( 1) 各关卡挡板大小 使用 if语句实现不同关卡挡板的 长度。 【代码实现】 Pad(GamePanel panel) { = panel。 if( == 1) size = new Point(140,20)。 if( == 2) size = n。基于java的打砖块游戏毕业论文
相关推荐
表方块的周围的 8 个方块中共有多少颗雷。 (4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。 用户每标记出一个扫雷标记 (无论用户的标记是否正确 ),程序将显示的剩余雷数减少一个。 (5)当用户点中雷时,将有“你输了”的提示出现,胜利时,将有“你赢 了”的提示出现。 功能需求分析 本程序为 java 课程设计。 参考 Windows
量及访问性质 Servlet 可以是其它服务的客户端程序,例如,它们可以用于分布式的应用系统中,可以从本地硬盘,或者通过网络从远端硬盘激活 Servlet 的作用。 Servlet 可被链接 (chain)。 一个 Servlet 可以调用另一个或一系列 Servlet,即成为它的客户端。 山东财经大学学士学位论文 3 采用 Servlet Tag 技术,可以在 JSP页面中动态调用
大降低了对客户浏览器的要求,即使客户浏览器端不支持 Java,也可以访问 JSP 网页。 JSP 全名为 Java Server Pages,其根本是一个简化的 Servlet设计,他实现了 Html语法中的 java 扩张(以 %, %形式)。 JSP 与 Servlet 一样,是在服务器端执行的。 通常返回给客户端的就是一个 HTML 文本,因此客户端只要有浏览器就能浏览。 Web
器下载原理图 Fig 21 Server Download principle 第二类 : P2P(Peer To Peer)下载 ; BT、 EMULE、 VAGAA 都属于此类 , 虽然协议不一样 , 但是下载方式都是根据文件信息 , 从互联网中寻找正在下载该文件的用户 , 并从他们那里下载。 当然软件会寻找用户 , 并从多个用户下载自己没有的部分 , 而将自己已下载的而别人没有的上传给别人
SQL 语句发送到相应的任何一种数据库。 Java 与 JDBC 的结合 , 使程序员可以只写一次数据库应用软件后 ,就能在各种数据库系统上运行。 由于 Java 语言具有健壮性、安全、易使用、易理解和自动下载到网络等优点 , 因此 , 它是数据库应用的一个极好的基础语言。 现在需要找到一种能使 Java 应用与各种不同数据库对话的方式 , 而 JDBC 正是实现这种对话的一种机制。 JDBC
③图像浏览区 ①操作区 ④图像窗口 8 面的外观风格的切换,只能有一种外观风格被选择,因此使用 JRadioButtonMenuItem 和ButtonGroup。 操作区内另有工具栏, 使用 JToolBar,为了让工具栏能更好地被拖出和放回原位,而不影响界面的布局,使用自定义的类 JToolBarPanel,该类是 JPanel 的子类,并实现了ContainerListener 接口