欢迎来到天天文库
浏览记录
ID:13030281
大小:795.78 KB
页数:34页
时间:2018-07-20
《俄罗斯方块单人游戏java程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、目录1、设计目的32、系统描述33、分析与设计43.1模块的划分42.3功能分析54、系统功能分析及实现过程54,1系统功能64.2实现过程.64.3系统主界面85、结束语11参考文献12附录341、设计目的我们之所以选择开发俄罗斯方块游戏,无可争议,《俄罗斯方块》是有史以来最伟大的游戏之一。在曾经发布过的所有游戏中,《俄罗斯方块》还被认为是仅有的一个能够真正吸引广泛人群的作品。谁能说清楚,迄今为止人们究竟花了多少万个小时在这个游戏上?也许这些时间本来可以被花在更具生产力的活动上。某些批评家也许会声称,《俄罗斯方块》要比过去二十年间出现的任何东西都
2、要浪费人们的时间。至于我们,则要欣然提名它为GameSpot评选出的历史上最伟大游戏之一。为了怀念经典,也为了能够给大多的计算机用户在工作之余找到一个休闲、娱乐的一个方式,我们小组开始着手用VB语言开发一个经典的俄罗斯方块游戏。2、系统描述俄罗斯方块是一款适合大众的游戏软件,它适合不同年龄的人玩。本软件实现的基本功能如下: 游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况和下一个将要出现方块的提示。 游戏控制:玩家可以通过游戏控制功能来控制游戏开始,暂停,结束游戏,游戏难度的设置以及音效控制。玩家游戏信息存储及删除:玩家的得分
3、在前五名时,将会记录在排行榜上,同时可为玩家清空排行榜。3、分析与设计3.1功能分析3.1.1模块的划分34依据需求分析结果,俄罗斯方块游戏可以分为三个模块:游戏区、游戏控制区、数据操作区。系统模块结构如图:3.1.2功能分析俄罗斯方块游戏根据游戏界面布局的不同,将系统划分为如下几个功能部分。(1)游戏显示更新功能。游戏显示更新功能主要是更新显示游戏区域的方块显示,包括控制游戏方块的下落速度,下落方向以及形状改变,并且还需要判断当前游戏方块是否满足消除一行的条件。GameAreaPanel类就是游戏显示更新的控制类,paint(Graphicsg)
4、方法主要负责游戏区域的实时重绘。(2)游戏方块预览功能。在游戏过程中,当在游戏区域中出现一个游戏方块时,必须在游戏预览区域出现下一个游戏方块,这样有利于游戏者控制游戏的策划。由于在此游戏中存在8中不同的游戏方块,所以在游戏方块预览中就需要显示随机生成游戏方块。PreviewPanel类是游戏预览控制类,在painting(Graphicsg)方法中,将根据生成的随机数字显示不同的游戏方块。(3)游戏方块控制功能。给各种游戏方块设置一个基类,主要包括begin()(初始化显示)方法,down()(向下移动)方法,left()(向左移动)方法,righ
5、t()(向右移动)方法,change()(变换角度)方法,downto()(一下到底)方法。在各个游戏子类中,需要具体实现这些方法。(4)游戏速度分数更新功能。34在游戏者进行游戏的过程中,需要按照异地昂的游戏规则给游戏规则给游戏者计算游戏分数,当游戏分数达到一定数量后,就需要给游戏者增加难度,即提高游戏中游戏方块的下落速度。3.2功能设计3.2.1方块的设计俄罗斯方块游戏中,具体的游戏方块图形的设计是比较重要的一个方面。因为俄罗斯方块游戏中主要的动作就是控制游戏方块的移动和翻转,以便于组成一行行连续的方块从而增加游的分数。由于主要的游戏动作都集中
6、在这个游戏方块上,因此游戏方块的设计就显得格外重要了。为了增加程序的可扩展性,这里设计一个游戏方块的基类,各个具体的游戏方块都从这个基类开始继承。这样,当需要增加游戏方块时就不用重新设计新的类,只需要从这个基类集成出一个类就可以了。更具基类设计了8个派生游戏方块类,其结构如图:3.2.2旋转方块的设计旋转方块的出现是随机的,而随着游戏级别的提升,每一关出现的旋转方块的数量也会不同,对于七种方块来说,它们在任何一段时间内出现的概率都是一致的,再者,旋转方块需要两个定时器,定时下落和定时旋转。旋转方块的这个性质要求它必须要两个线程才能控制,但是为了充分
7、利用资源,我们可以利用方块控制线程去控制旋转方块定时下落,然后只需再创建一个线程控制它定时旋转即可。确定了两个线程共同控制旋转方块,就会出现一个线程协调工作的问题。如果一个新方块出现的时机正好也是旋转方块出现的时机,程序就会出现紊乱,所以必须保证,在同一时间,正常方块和旋转方块只能出现一个。34因为两个线程需要共同控制旋转方块,所以不能用wait()和notify()这两个方法去协调线程,而应当利用其它条件去协调两个线程。首先,游戏开始后,旋转方块控制线程可以随机休眠一定时间(这个休眠时间应该是随着游戏级别的提升而缩短的)。休眠时间结束后,循环检测
8、正常方块是否已经落下,当检测到方块落下后,马上得到一个新方块,然后开启一个循环,在方块没有落下之前让它按一定的时间频率旋转
此文档下载收益归作者所有