- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * J2ME J2ME Java ME 移动开发编程 ——开发实例 实例——俄罗斯方块 一、游戏设计 操作流程 本游戏的操作流程非常简单,玩家启动MIDlet启动后,即进入游戏主画面,屏幕开始显示为欢迎画面。玩家按下任意键,进入游戏。当玩家按下[开始]按钮后,就可以开始玩游戏了。在游戏过程中,玩家可以按下[暂停]按钮暂停游戏运行,按下[继续]按钮,恢复游戏运行。任何时候按[退出]按钮,MIDlet都会终止。 流程图 游戏分析 要实现上述游戏功能,我们需要实现哪些类? ——首先,我们需要一个控制类,用来管理整个程序运行的流程 ——其次,我们需要一个游戏类,用来实现游戏的核心功能 ——再次,我们需要一个类来实现产生下一个方块、方块移动和旋转等操作。 ——其他的一些辅助类,诸如定时器任务类等 控制类的实现 控制类的功能比较简单,根据流程,它主要控制在显示了欢迎界面后,启动游戏类的显示。 二、核心逻辑的设计思路 游戏的实现其实就是把一个现实世界的物理模型抽象成能用程序描述的逻辑模型。 我们回想一下俄罗斯方块的游戏过程: 一个有一定形状的方块从屏幕顶部往下掉,而且这个方块可以旋转、可以左右移动。 那么我们来分解这个过程 俄罗斯方块的游戏过程 首先,考虑怎样实现方块不停的从屏幕顶端往下落的过程。 要上方块不停的从屏幕顶端往下落,这是一个重复的且按照一定时间间隔的行为,我们自然可以想到在这里用一个定时器来实现这一个重复的过程。我们只需要在定时器的定时任务里完成方块的下落就行了。 俄罗斯方块的游戏过程 其次,考虑方块表示和方块的旋转、移动。 俄罗斯方块共有7种不同类型的方块 上面的7种方块中,每一种类型的方块都可以看作是单位方块的组合,且都是由4个单位方块组成。 俄罗斯方块的游戏过程 另外,方块在屏幕上的移动是以一个单位方块为单位移动到的,那么我们可以把屏幕划分成若干个小方格,每次移动就向相应的方向移动一小格,如下图 俄罗斯方块的游戏过程 向右移动五次 向下移动五次 核心逻辑的设计思路 在本例中,方块都是用一个填充颜色的实心矩形表示的,那么我们为了要表示放块,需要先把屏幕划分成m x n 个小格子,在本例中,m=15,n=11。为了表示这些格子,我们可以定义一个二维数组int ScreenBlock=new int[11][15];来表示屏幕中的每个小格子。这里为了和屏幕坐标统一起来,所以数组的第一维表示一行多少列,第二维表示总共多少行,这样与x, y是统一的。有了这个二维数组,我们可以将方块对应屏幕位置的二维数组的相应数据设置为1,而没有方块的地方设置为0,这样我们在屏幕渲染时,就扫描整个二维数组,只要数组元素为1,我们就将相应的区域着色。 核心逻辑的设计思路 下面考虑怎样表示不同类型的方块以及方块的旋转。 接着上面思考,既然我们的屏幕上已经划分好了小格子,那么我们只要把每种方块贴到屏幕上的相应位置的格子里就行了,因此我们需要知道每种方块对应的那些格子应该着色。我们可以同样用数组来标记每种不同的方块应该在哪些区域着色。因为在这7种方块中,每一种类型的方块无论长或宽都不超过4个单位方块,所以我们可以用一个4x4的矩阵来表示。 核心逻辑的设计思路 1 0 5 4 4 0 9 5 5 4 7 6 5 1 8 4 4 0 8 1 6 2 10 1 1 4 5 6 方块的旋转 我们其实是用了一个4x4的二维数组来表示一种方块,那么我们在程序里可以用矩阵旋转的方法把放块旋转后的结果计算出来,这是一种方法。 另一种方法,因为我们每次旋转都是旋转90度,那么每种方块也就只有4种状态,7个放块也就28种状态,那么我们可以在程序里将这28种状态都写出来,那么旋转的时候,我们只要顺序的取这些方块的状态就可以了。因此我们定义一个类BlockTypeArray 来存储这些状态 方块的移动 有了前面的数据结构,我们可以设计一个类Block来控制方块的移动和旋转等操作。那么这个Block类有一个,x, y属性对应了这个方块在屏幕坐标中的位置。当我们要移动方块时,只要改变这个x, y坐标就可以了。至于渲染得时候,也是根据这个x, y坐标在加上每个方块的偏移位置,在屏幕中将这个方块画出来。 MainCanvas类的实现 完成的功能 该类实现游戏的核心逻辑,需要完成的功能: 实现游戏的控制(用户通过这个类实现与游戏的交互) 游戏逻辑的实现 包括: 让方块定时下落 判断方块左右移动和下落的可能性 判断一个放块所涉及的行是否填满 消去填满的行等
您可能关注的文档
- 第6章 类 与 对 象.ppt
- 第6章 容器类简介.ppt
- 第6章 网页行为语言——JavaScript 单飞的鞋子.ppt
- 第6章 JAVA的异常处理机制.ppt
- 第6章 Java面向对象程序设计.ppt
- 第6章 JDBC.ppt
- 第6章 JSF开发.ppt
- 第6章 JSP组件技术.ppt
- 第6章 Struts高级应用.ppt
- 第6章 过程(整理).ppt
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)