logo资料库

java课程设计报告-俄罗斯方块.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
课程名称 姓 名 Java 专业班级 设计题目 俄罗斯方块 学号 组别 日期 08.7.4 成绩 同 组 者 指导教师 1、目的及要求 1)了解 Java 的基本使用方法。 2)熟悉 eclipse 的运行环境。 3)用 JAVA 面向对象的方法来设计一个俄罗斯方块的小游戏。 4)基本实现俄罗斯方块的应用功能。 2、课程设计内容说明 2.1 项目需求分析 由方块组成的不同的随机图形会从区域上方开始缓慢落下。 1)玩家可以做的操作有: 以 90 度为单位旋转方每一格块。 以格子为单位左右移动方块,让方块加速落下。 2)方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处,而 新的随机图形会出现在区域上方开始落下。 3)当区域中某一列横向格子全部由方块填满,则该列会自动消除并成为玩家的得 分。同时删除的列数越多,得分指数上升。 4)当固定的方块堆到区域最上方,则游戏结束。 2.2 编写前期的准备: 由于我们对 Java 语言有过初步接触过,所以在完成这样一个游戏的设计,相 对来说并非十分困难。 2.3 设计与实现 2.3.1 类图 通过类图,我们可以清晰的看到在面向对象的设计中,各个对象之间个关系。 体现了 MVC 的体系结构,Engine、handle、Box、Game、Flushable、Shaper 以 及所有继承了 Shaper 的各式图形都属于 View 模块;MyFrame 和 MyCanvas 属于 Mode 模块;、Controller 属于 Control 模块。 第 1 页
上海应用技术学院 课程设计专用纸 图 2.1MVC 结构图 MyFrame Game Box Shaperhandle Shaper MyCanvas Controller Flushable Engine 2.3.2 各个类的功能以及主要函数的功能介绍: 图 2.2 总类图 首先,建立个名为 game 的工程,随后在 game 下建立个 com.yy.test 的包,并 且在包下建立个 Test 类,里面包含了主函数保证函数的运行,即调用 Controler 的控制。 然后建立个新类 MyCanvas。MyCanvas 是一个类似画布的类,其中包括了画 背景框的函数实现 drawBox(Graphics g),画图形的实现函数 drawShaper(Graphics g),在背景上所要显示的文字的函数 drawHit(Graphics g),每次刷新画布的函数, 以及解决去除闪屏,实现 3D 效果的部分函数 getBuffer()。 建立 MyFrame 类,主要是对框架的设计,包括对 tittle 进行修饰,窗口屏幕 上出现的位置,以及长和宽的尺寸。 第 2 页
上海应用技术学院 课程设计专用纸 在 Box 类中,包括的功能为对整个界面触发,相当于一个容器,包括确定生 成图形的所在位置,游戏运行的状态 Status{PREPARED,BEGIN,END} ,调用 Engine,使图形根据需要自动下落,以及控制活动图形能够活动的空间函数 canGowith(Point[] points),保证图形不越界和产生各种图形的函数 newshaper()。 还有就是为了满足俄罗斯方块消行的规则,把整个框的坐标做成了一个二维数 组,便于实现功能。以及何时触发产生新图形和停止游戏的判定函数。 具体为:建立个 getBGPoints 的方法得到动态图形在 Canvas 上的动态坐标, 建立 newshaper 的方法得到随机的图形,建立 touchbuttom 类来判断图形是否到 达画布的底部,来触发是否应该产生新的随机图形,建立 Check 方法,来检查是 否有满行来实现自动加 10 分,removeRow 来实现消行。 建立新类 Controler 实现监听键盘对方块的控制,建立 addListener 的方法, 来实现对键盘的监听,其中回车是使游戏开始,方向键除了上以外是对图形走位 的控制,空格键是对图形变化的控制。以及对 Box 和 Canvas 的调用。 建立新类 Motor,使方块自动下落,其中 startup 方法是对其下落的速度进行 设置。 建立新类 Point,得到不同图形的每个点的坐标,使在 Shaper 类中画图形更 加便捷。 建立新类 Shaper,实现构造图形的重画,其中 down,left,right,rotate 方法是实 现图形的下降,左移,右移以及旋转。 建立新类 IShaper,JShaper,LShaper,OShaper,SShaper,TShaper,ZShaper 分别继承 Shaper(这里只建立了 IShaper、LShaper、SShaper,TShaper,ZShaper,其他类的建 立方法相同),对图形进行重载,画出不同的图形,可以根据自己不同的需要, 设置图形。 第 3 页
返回 FALSE 上海应用技术学院 课程设计专用纸 2.3.3 流程图 开始 定义画布和画布中的盒子 判断新的形 状所在位 置与盒子的位置关系 形状所在位子>左边界? 形状所在位子>右边界? 形状所在位子>底部? 游戏开始,随机出现各种形状 判断新的形状>HEIGHT? 下移 判断新的形状>WIDTH? 判断是否满行 消除行,分数加 10 结束 第 4 页 3、结果和体会 3.1 游戏结果
上海应用技术学院 课程设计专用纸 1)游戏开始前:按 space 键开始 2)每消除一行,游戏分数加 10 分 3)游戏结束,显示最终得分。 3.2 没有实现的功能 由于时间的问题,完成了绝大部分的游戏程序,在 windows xp 的环境下, 我们也可以对游戏进行游戏测试,但是,仍旧存在着许多缺点和不足,比如说, 游戏中没有背景音乐,没有下个图形的预览,图形界面也过于简单。 3.3 体会心得 通过短短的一周的时间,我们从一个对 JAVA 编程懵懂的学生到现在可以试 着用 JAVA 进行简单程序的编写,我想,这个是和老师的教导以及同学的帮助是 分不开的,所以,首先,在这里,感谢潘诺公司 Peter 老师在这周来的教导,以 及感谢小组同学在这段时间里的帮助,因为有你们,才使我这次课程设计能够预 期完成老师布置的任务。 其次,因为这次的学习,使我们对 JAVA 面向对象的编程有了深一步的了解, 因为这次的课程设计,使我在今后的工作和学习中,都有了很到的启发。 第 5 页
分享到:
收藏