- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java--俄罗斯方块
俄罗斯方块游戏设计(Java版)
一.系统分析
1.1 问题描述
开发一个俄罗斯方块游戏。游戏者移动和旋转窗口内落下的方块,方块在一行堆满后就可以消掉,并得到相应的分数;如果方块堆积至窗口顶端,即告负。
1.2 系统功能分析
? 在游戏程序中,我们可以将它看成3个对象,分别是程序窗体主类对象、方块数据管理对象、控制游戏自动下落的定时器线程对象、三个背景音乐对象。
窗体主类对象:GameWin.java
方块数据管理对象:RussionGame.java
控制游戏自动下落的定时器线程对象:TimerRuner.java
三个背景音乐对象:Anthem.java,Anthem2.java,Anthem3.java
1.3 开发平台及工具介绍
开发工具:Sun NetBeans IDE 6.1
NetBeans IDE 是一个为软件开发者提供的自由、开源的集成开发环境。您可以从中获得您所需要的所有工具,用 Java、C/C++ 甚至是 Ruby 来创建专业的桌面应用程序、企业应用程序、web 和移动应用程序。此 IDE 可以在多种平台上运行,包括 Windows、Linux、Mac OS X 以及 Solaris;它易于安装且非常方便使用。6.0 发行版包含了重要的增强功能和新特性,包括完全重写的编辑器基础结构、对扩展语言的支持、新的生产率特性,以及一个能让您根据实际需求安装并配置 IDE 的简化安装过程。
游戏数据管理对象:主要管理着两方面数据:方块的坐标数据和游戏空间数据。用成员数组变量描述游戏空间状态,根据游戏空间状态判断游戏是否结束。用它的成员变量保存方块的形状数据及坐标数据,定义当方块走动方块数据变化的处理方法。此外,还把各种游戏属性数据作为其成员变量。
控制游戏自动下落的定时器线程对象:是一个线程类派生对象,独立运行,每隔一段时间控制方块下落下格。
窗体界面主类对象:负责绘制游戏图象、包含游戏设置的各种控件(如:设置速度的文本框、显示得分的标签、开始及暂停按钮),负责游戏的各种属性数据的读入及显示输出,最重要的是:它还是一个键盘事件处理类,监听玩家的键盘操作,处理键盘事件,在键盘事件处理函数中调用游戏数据管理对象的方法,控制游戏的运行。我们还把游戏数据管理对象、控制游戏自动下落的定时器线程对象作为它的成员变量。
往面板中加入需要的控件(2个Jlable,2个JcomboBox,4个Jbottun),并布置好它们的位置,并重命名控件对象变量的名称,如上图:
2.3系统方法的分析
1.俄罗斯方块形状设计
首先对于方块的构造分析,可以用一个三维数组来表示,方块总共有四种基本形,其它形状可由这四种基本形通过旋转得到,如下图:
class RussionBlockGame
{
final int sp_WIDTH = 20;????? //游戏空间宽(单位:小正方格)
final int sp_HIGHT = 20;?????? //游戏空间高(单位:小正方格)
final? int boxtypes[4][4][2]={
{{-1,0},{0,0},{1,0},{2,0}},
{{-1,0},{0,0},{1,0},{1,-1}},
{{-1,0},{0,0},{1,0},{0,-1}},
{{-1,0},{0,0},{1,0},{-1,-1}}
};/*四种基本方块的相对坐标*/
?int? box[4][2];? /*四个正方形的坐标(相对方块中心点)*/
int cx, cy; /*方块中心点在游戏空间中位置的坐标(相对游戏空间左上角点)*/
?int type; /*方块类属(上图中四种分别为0,1,2,3)*/
游戏核心数据
int? block_box[][]=new int[4][2]; ?/*四个正方形的坐标(相对方块中心点)*/
int? block_cx, block_cy; /*方块中心点在游戏空间中的坐标(相对游戏空间左上角点)*/
int? block_type; /*方块类属(上图中四种分别为0,1,2,3)*/
int? gamespace[][] = new int[sp_HIGHT][sp_WIDTH] ;
随机生成新的方块:
void makeblock()//随机生成新的方块数据
?????? {
??? block_type = (int)(Math.random()*100)%4;//产生一个1-4的随机数
?????? ??? for(int i=0; i4;i++)
?????? ?? ????block_box[i] = types[block_type][i];
?????? ??? block_cx=sp_WIDTH/2; block_cy=0;
}
游戏空间
(
您可能关注的文档
- HR经理如何通过绩效考核实现企业可持续经营.doc
- HR-FGD博格曼烟气脱硫装置专用机械密封.ppt
- HR必备手册-企业领导人形象塑造工程.ppt
- HuffmanCode_霍夫曼编码.doc
- HSPA数传问题处理指导书.doc
- hulu、youtube、土豆等视频网站类型分析.pptx
- HW公司国际化战略成果和经验介绍.ppt
- HY-20-05丁二烯抽提二装置工艺流程简述.doc
- HSE考核细则.doc
- HYSPLIT模式简介及单机版使用图文教程.doc
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)