1 / 14
文档名称:

俄罗斯方块游戏设计(java版).doc

格式:doc   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

俄罗斯方块游戏设计(java版).doc

上传人:chuandao1680 2016/4/13 文件大小:0 KB

下载得到文件列表

俄罗斯方块游戏设计(java版).doc

相关文档

文档介绍

文档介绍:软件 092 、 093 实训题目:俄罗斯方块游戏设计(Java 版) 开发工具要求: Jcreate 或以上参考: java 帮助文档,tutorial 文档知识:程序主框架,事件发生与处理模型,时间日期类及时间格式化输出、图形绘制接口(类)及各类绘图成员函数、窗体的重绘机制、进程及线程的初步概念。要求:完成以下游戏内容,满分为 85分,若加以扩展,满分为 100 分。一、设计要点: ,用游戏结构数据描述游戏的状态,玩家操作或游戏自行走一步,程序中都通过修改游戏数据来体现,即每走一步,程序会修改当前的游戏数据,判断游戏是否结束了,也是通过对游戏数据的分析来作出结论。游戏界面是根据当时游戏数据来绘制的,当数据改变时,要清除原图形并重绘。总之,游戏的逻辑设计是针对游戏数据,而不是游戏界面。界面只是间接地向玩家显示结果。 ,在设计函数时,大致分二类:与玩家操作事件有关的数据处理函数, 与界面效果有关的图形绘制函数。游戏运行过程由窗体监听到的键盘事件控制。 ,我们可以将它看成 3个对象,分别是程序窗体主类对象、方块数据管理对象、控制游戏自动下落的定时器线程对象。窗体界面主类对象: 负责绘制游戏图象、包含游戏设置的各种控件(如:设置速度的文本框、显示得分的标签、开始及暂停按钮),负责游戏的各种属性数据的读入及显示输出,最重要的是:它还是一个键盘事件处理类,监听玩家的键盘操作,处理键盘事件,在键盘事件处理函数中调用游戏数据管理对象的方法,控制游戏的运行。我们还把游戏数据管理对象、控制游戏自动下落的定时器线程对象作为它的成员变量。游戏数据管理对象:主要管理着两方面数据:方块的坐标数据和游戏空间数据。用成员数组变量描述游戏空间状态,根据游戏空间状态判断游戏是否结束。用它的成员变量保存方块的形状数据及坐标数据,定义当方块走动方块数据变化的处理方法。此外,还把各种游戏属性数据作为其成员变量。控制游戏自动下落的定时器线程对象: 是一个线程类派生对象,独立运行, 每隔一段时间控制方块下落下格。 class RussionBlockGame { final int sp_WIDTH = 20; // 游戏空间宽(单位:小正方格) final int sp_HIGHT = 20; // 游戏空间高(单位:小正方格) final int types[][][]= { {{-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 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] ; /* 空间数据*/ // 游戏的其它属性 int m_score = 0; /* 游戏得分*/ int m_speed = 500; /* 控制游戏,单位: 1/1000 秒/步*/ boolean isplaying = false; /* 是否在游戏中*/ public RussionBlockGame()// 构造函数{ …………} void makenewblock(){}// 随机生成新的方块数据 void movedown(){}/* 下移动方块*/ void moveleft(){}/* 左移动方块*/ void moveright(){}/ * 右移动方块*/ void turnleft(){}/* 左转动方块*/ void turnright(){}/* 右转动方块*/ bool ean IsCanChangeTo( int cx, int cy, int box[][] ) // 判断方块能否走到这位置 boolean IsHitBottom( ) // 判断当前方块是否已触底,并处理 boolean CheckAndCutLine(int Ln ) /* 查某行是否为全填充, 如是, 消掉并返回 true*/ boolean IsGameOver() {} /* true--- 结束 false-- 没有结束*/ } class GameWin extends JFrame { Clolor spacecolor; //