- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java课程设——俄罗斯方块
JA VA 程序设计
一、程序功能介绍
本程序实现了俄罗斯方块游戏的基本功能,游戏中玩家可以做的操作有:
1.中间一个方块不变其他三个以90度为单位向右旋转方每一格块,此程序会判断方块有没有
空间让他实现旋转,即判断是否越界,若越界则不可以实现旋转。
2.以格子为单位左右移动方块,下方向让方块加速落下,空格键则急速下落。
3.方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处,而新的随
机图形会出现在区域上方开始落下。
4.当区域中某一列横向格子全部由方块填满,则该列会自动消除并成为玩家的得分。同时删
除的列数越多,得分指数上升。
5.当固定的方块堆到区域最上方,则游戏结束。(此功能尚未实现)
6.此程序还不完善,开始,暂停,重来,结束都没有实现,有待改进。
二、课程设计过程
1、总体概述:
设计一个简单的游戏,能够将Java 的面向对象程序思想应用到课程设计中,用到Java
中常用的组件以及相应的布局方式。完成设计、编程、测试等过程,给出设计思路、设计说
明书、主要的代码的说明、源代码以及可运行的游戏程序。
2、各个子类的定义:
1.定义俄罗斯方块类,通过可视化界面设定一个游戏界面窗口,用一个10*20表示游戏区域。
public class TetrisGame extends JPanel
JFrame jf new JFrame(俄罗斯方块);
jf.setSize(540, 600);
jf.setVisible(true);
public static final int ROWS 20;
public static final int COLS 10;
2.定义7种俄罗斯方块的基本类型,分别以S、Z、L、J、I、O、T这7个字母的形状来命名。
先定义四方格主类:public class Tetromino;
再定义它的7个子类:S、Z、L、J、I、O、T
private static class S extends Tetromino;
- 1 -
JA VA 程序设计
private static class Z extends Tetromino;
private static class L extends Tetromino;
private static class J extends Tetromino;
private static class I extends Tetromino;
private static class O extends Tetromino;
private static class T extends Tetromino;
3.通过switch 语句,随机输出方块到游戏区域顶部。
public static Tetromino randomOne();
4.用键盘监听来实现下落、移动、旋转变形。
键盘监听:public void keyPressed(KeyEvent e);
软着陆:protected void softDropAction();
硬着陆:protected void hardDropAction();
左移:protected void moveLeftAction();
右移:protected void moverightAction();
右旋:public void rotateRight();
repaint();
重绘java里repaint()是重绘component的方法;component中己有的图形发生变化后不会
立刻显示,须使用repaint方法。component简而言之,组件就是对象。C++ Builder 中叫组
件,Delphi中叫部件,而在VisualBASIC 中叫控件。 组件是对数据和方法的简单封装。C++
Builder 中,一个组件就是一个从TComponent派生出来的特定对象组件可以有自己的属性和
方法。
判断是否越界:
private boolean canMoveR();//是否碰墙,是否有其他图形
private boolean outOfBoundsTB();//
private boolean baoHanR();//判断右侧墙上是否有内容
private boolean baoHanL();//判断左侧墙上是否有内容
private boolean outOfBoundsR();
private boolean outO
您可能关注的文档
- ALA-PDT治疗尖锐湿疣量效关系的临床研究中国医学科学院7.ppt
- ALOS卫星数说明-北京揽宇方圆.doc
- An Experimental Investigation on Heat Pipe Operation-文学专业毕业论文.pdf
- ANALYSIS OF SIGNAL-TO-NOISE RATIO DISTRIBUTIONS AND BIT ERROR RATES FOR EQUAL GAIN DIVERSITY SYSTEMS ON GENERALIZED FADING CHANNELS-文学专业毕业论文.pdf
- ANSYS BAM44单元详解.pdf
- ANSYS六面网格划分规则(map or sweep).doc
- Arcgis中何显示线方向.pdf
- AWA5610积分声级计说明书.pdf
- autocad第一讲4.ppt
- AUTOSAR OS规范(1部分).docx
文档评论(0)