桌面弹球(java开发)分析及源码

桌面弹球(java开发)分析及源码

ID:37718150

大小:324.00 KB

页数:23页

时间:2019-05-29

桌面弹球(java开发)分析及源码_第1页
桌面弹球(java开发)分析及源码_第2页
桌面弹球(java开发)分析及源码_第3页
桌面弹球(java开发)分析及源码_第4页
桌面弹球(java开发)分析及源码_第5页
资源描述:

《桌面弹球(java开发)分析及源码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、桌面弹球1桌面弹球概述桌面弹球是游戏中常见的游戏,从以前的掌上游戏机到如今的手机游戏,都是一个十分经典的游戏。玩家控制一个可以左右移动的挡板去改变运动中小球的移动方向,目的是用小球消除游戏屏幕中的所有障碍物到达下一关,在障碍物被消除的过程中,可能会产生一些能改变挡板或者小球状态的物品,例如:挡板变长、变短,小球威力加强等等。本章主要介绍如何实现一个简单的弹球游戏,让读者了解“动画”的实现原理。在本章中,将介绍与使用Java的绘图功能,使用到JPanel的paint(Graphicsg)方法去绘图,绘图主要是依靠这个方法中的Graphics类型的参数,将使用Ja

2、va中的Timer去重复绘图,产生动画效果,桌面弹球游戏的效果如图4.1所示。图1.1桌面弹球1.1动画原理简单地来说,动画是利用人的视觉暂留的生理特性,实现出来的一种假象,只要每隔一段时间(这个时间少于人的视频暂留时间)就重新绘制一幅状态改变的图片,就能造成这种“动”的假象。我们在程序中不断的进行绘画(使用repaint方法),对程序来讲,只需要在短时间内进行多次的绘画,并且每次绘画都需要改变绘画的相关值,就可以达到“动画”的效果。1.2小球反弹的方向在本章实现的过程中,我们会设置小球于对称的方式,并出现少许偏移的方式反弹,如图4.2所示。让小球反弹出现少许

3、编移是为了让游戏增加点不确定性,增加游戏的趣味性。我们需要在编写游戏前确定这些小细节,这样在开发的过程中,我们就可以按照这些小细节去逐步实现我们的程序。图1.2小球的反弹2流程描述玩家使用左右方向键开始游戏与控制挡板,在未消除完所有的障碍物或者挡板没有档住向下移动的小球之前,会一直处于游戏状态,在这个状态中,小球会一直处于直线运动或者改变方向,当小球消除掉障碍物的时候,有机率产生一些物品,产生的物品会直线向下移动,用挡板接住物品后,物品的特殊效果会生效。如果消除了所有的障碍物,就判断玩家为赢,如果挡板没有接住向下移动的小球,就判断玩家为输。具体的游戏流程如图2

4、.1所示。图2.1游戏流程游戏中并不涉及复杂的流程,只需要处理游戏的输赢即可,因此在实现的过程中,关键是如何确定游戏输赢的标准(挡栏没有挡住小球)。3创建游戏对象在这个游戏中,有挡板,小球,砖块(障碍物),道具等物品,这些物品都有共同的特性,有属于自己的x与y坐标属性,有图片属性,有速度属性,所以,在这时在,设计一个基类BallComponent包含这些属性与相关的方法,让其子类继承。继承此类的子类有Stick类(用于定义挡板的行为于属性),Ball类(控制小球的移动与其它动作),Brick类(砖块类),Magic类(道具抽像类,此类中有一个用于使道具功能实现

5、的抽象方法,供其子类实现)。道具类的子类有LongMagic与ShortMagic,作用是使Stick的长度变长或者变短。在平时的开发中,如果发现多个对象之间有一些共同的特性或者行为,并且觉得可以使用这些特性或者行为构成一个对象,那么可以建立一个新的对象作为这些对象的父类。如果该父类中某些方法并不需要由父类实现,我们可以将父类做成抽象类,并将这些方法变成抽象的。确定了我们游戏中的所涉及的对象后,我们还需要一个BallFrame类去创建一个画板,用于绘制图片,此类还完成界面的初始化,监听用户的键盘,而与游戏相关的业务逻辑(判断输赢或者球的运动),我们放到Ball

6、Service类中去处理,本章类的关系如图3.1所示。图3.1桌面弹球类图笔者在这里提供了本章的类图,是为了让读者可以更清晰的了解本章程序的结构,但在实现开发的过程中,我们可以根据实际情况,加入或者改变各个类的关系或者程序的结构,但最终都是为降低程序的耦合、提高内聚、编写出优秀的代码。3.1基类BallComponentBallComponent,做为Brick(砖块)类、Magic(道具)类、Stick(挡板)类、Ball(小球)类的父类,定义了这些子类共有的属性与方法,属性有:x坐标,初始值为-1;y坐标,初始值为-1;图片image,初始值为null;速

7、度speed,初始值为5。根据不同的需要,提供以下三个构造方法:qBallComponent(Stringpath),path是图片的路径,用图片的路径来构造一个BallComponent,在此构造方法中,将根据路径去读取图片,再设置对象中image属性。qBallComponent(intpanelWidth,intpanelHeight,Stringpath),以panelWidth,panelHeight,与path去构造一个Component。qBallComponent(Stringpath,intx,inty),以x坐标,y坐标和path去构造一个

8、BallComponet。除去这些构造

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。