java课程设计报告材料-俄罗斯方块

合集下载

Java课程大作业俄罗斯方块作业报告[1]

Java课程大作业俄罗斯方块作业报告[1]
程序使用说明(文字说明,并附界面抓图)
游戏流程图:
进入游戏界面 点击按钮“开始” ,游戏开 始 蛇开始随机出现 键盘操作: “左移” “右移” “旋转” “加速”
到达顶端
单击 “开始” 游戏 继续
游戏结束
游戏面板
点击“开始”Leabharlann 戏开始如图:按“”控制蛇的方向如下图:
方块不能继续下落时游戏结束,出现“Game over” ,如图:

作业结果(学生填写) : 程序设计思路(300字以上,可附流程图或类图)
俄罗斯方块游戏设计与实现,主要分为以下二个模块:游戏主界面模块和游戏控制 模块。 在此只实现游戏的游戏主界面模块、游戏控制模块。并且只是实现移动速度、重新 开始等功能。 游戏主界面模块: 游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形 区域界面、游戏速度控制、重新开始游戏、速度等级以及当前分数。从很大程度上 决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。 游戏控制模块: 这个模块是游戏的中心环节,主要完成控制游戏的速度、重新开始等功能。为 了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。设计所开发的 是基于 Java 的一个俄罗斯方块游戏软件,主要实现游戏的速度控制。分为: 游戏 主界面模块、游戏控制模块以二个模块。 性能: 本软件在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程 中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。
Java 程序设计 课程作业报告 作业:俄罗斯方块游戏
姓名 程序得分 90% 作业目的: 掌握基本的图形程序设计方法 掌握Java事件处理程序编写方法 掌握编写基于TCP或UDP协议的网络通讯程序 掌握Java的流、文件、多线程等编程技术 郭阳 作业报告 得分 10% 学号 1143730212 实验总分 100%

(完整word版)Java俄罗斯方块游戏实验报告

(完整word版)Java俄罗斯方块游戏实验报告

嘉应学院计算机学院实验报告课程名称:JAVA课程设计开课学期:2011—2012年第一学期班级:093指导老师:项目题目:俄罗斯方块学生姓名:学号:提交时间:2011-11—13一、概述了解开始使用Jigloo 并进而使用其高级功能(例如可视化继承)使用XML、XML Schema 和JAXB熟悉事件处理程序和数据绑定的UI 编程概念了解AWT/Swing 或SWT3)图形用户界面设计;4)AWT组件库。

教师提出的要求:在实现程序应该有的功能至上再扩充一些功能。

3。

课程设计的主要设计思想俄罗斯方块应有如下功能:1、在二维的平面里用各种随即产生的方块堆积木,每填满一行消去一行,当到达顶部时,游戏结束。

2、玩家能通过方向键来控制方块的转动,左移,右移和直落。

3、每种类型的方块都有颜色.游戏有预览的功能,能告诉玩家下一个将出现什么类型的方块。

4、游戏能够在玩的过程中,给出玩家的分数,分数是由随即方块的类型决定的,每堆一个方块,就将分数累加到总分中。

5、游戏有暂停、开始和结束、游戏规则、游戏说明等控制。

二、类模块设计通过对功能要求的分析,将俄罗斯方块游戏的功能划分为2个类模块,它们是:Tetris类:该类包含main方法,应为应用程序的主类.该类用来创建游戏的用户界面,整个程序从该类的main方法开始执行。

Tetrisblok类:用来设计游戏界面.游戏界面显示在由Tetrisblok类创建的整个用户界面的中(Center)区,游戏的即时分数、堆积木的二维平面即时效果图及方块的预览功能都在整个类里面实现。

用来封装俄罗斯小方块。

一个方块的属性是由方块1位置即x和y的坐标、颜色决定的。

三、详细设计1、Tetris类的设计Tetris类中包含main方法,为主类.在主类中创建了JFrame窗口类的一个实例,设计如下:成员变量:成员方法:2、Tetrisblok类的设计Tetrisblok类用来设计游戏的用户界面。

java课程设计——俄罗斯方块

java课程设计——俄罗斯方块

一、程序功能介绍本程序实现了俄罗斯方块游戏的基本功能,游戏中玩家可以做的操作有:1.中间一个方块不变其他三个以90度为单位向右旋转方每一格块,此程序会判断方块有没有空间让他实现旋转,即判断是否越界,若越界则不可以实现旋转。

2.以格子为单位左右移动方块,下方向让方块加速落下,空格键则急速下落。

3.方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处,而新的随机图形会出现在区域上方开始落下。

4.当区域中某一列横向格子全部由方块填满,则该列会自动消除并成为玩家的得分。

同时删除的列数越多,得分指数上升。

5.当固定的方块堆到区域最上方,则游戏结束。

(此功能尚未实现)6.此程序还不完善,开始,暂停,重来,结束都没有实现,有待改进。

二、课程设计过程1、总体概述:设计一个简单的游戏,能够将Java的面向对象程序思想应用到课程设计中,用到Java 中常用的组件以及相应的布局方式。

完成设计、编程、测试等过程,给出设计思路、设计说明书、主要的代码的说明、源代码以及可运行的游戏程序。

2、各个子类的定义:1.定义俄罗斯方块类,通过可视化界面设定一个游戏界面窗口,用一个10*20表示游戏区域。

public class TetrisGame extends JPanelJFrame 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、Tprivate static class S extends Tetromino;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语句,随机输出方块到游戏区域顶部。

基于Java语言的俄罗斯方块游戏课程设计报告书

基于Java语言的俄罗斯方块游戏课程设计报告书

基于Java语言的俄罗斯方块游戏课程设计学院:X专业:X班级:X:X学号:X指导老师:X摘要第一章引言1.1 设计的课题背景1.2 研究课题的任务,目的和意义1.2.1 课题的任务1.2.2 课题的目的1.2.3 课题的意义1.3 系统的主要功能和特色1.3.1 系统的主要功能1.3.2 系统的特色第二章系统需求分析2.1 本课题研究现状分析2.2 要解决的问题及解决方法2.3 系统设计的主要容、目标2.3.1 系统设计的主要容2.3.2 设计的目标2.4 使用的关键技术第三章系统的详细设计3.1 系统的总体系结构3.2 系统各模块的界面设计及实现3.2.1 主窗体程序模块设计与实现3.2.2 方块变换模块设计与实现3.2.3 满行消除并计分模块设计与实现第四章系统的安装与测试4.1 系统的安装4.1.1 系统的运行环境4.1.2 系统的安装4.2 系统的测试结束语参考文献附录:有关程序代码摘要:在现代,高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一。

俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克·帕基特诺夫发明,故得此名。

俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。

由于上手简单、老少皆宜,从而家喻户晓,风靡世界。

为此,我设计了一款简单的俄罗斯方块JAVA 游戏程序,以便更好的满足广大电脑工作者闲暇之余的消遣,并且也让我学到编程技术。

关键字:俄罗斯方块游戏、Java语言、编程第一章引言1.1设计的课题背景俄罗斯方块是一款电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克·帕基特诺夫发明,故得此名。

俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。

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

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

JAVA程序设计课程设计之俄罗斯方块年级: 13 级班级: T412 网络工程指导老师:朱林小组成员:20138346021 许浩洋II时间: 2015 年 11 月 11 日目录摘要 .................................................................第一章课程设计要求..................................................第二章设计概要 ......................................................2.1功能设计 ......................................................2.2功能分析 ......................................................2.2.1系统操作界面 ...............................................2.2.2程序主要功能说明 ...........................................第三章调试分析与测试结果 ............................................3.1游戏运行界面 ..................................................3.2测试项目 ......................................................3.2.1功能区按键测试 ............................................3.2.2键盘功能测试 ..............................................3.2.3游戏结束测试 ..............................................第四章设计总结 ......................................................4.1改进意见 ......................................................4.2《Java 课程设计》心得体会 ......................................1摘要在现代,高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一。

JAVA俄罗斯方块实训报告

JAVA俄罗斯方块实训报告

《JAVA程序设计》实训报告课题名称:RussiaBlocksGame(俄罗斯方块)专业:计算机软件班级:学号:姓名:指导教师:2010年12月27 日目录《JAVA程序设计》实训报告 (1)一、课程设计目的 (4)二、课程设计题目描述和要求 (4)1)题目: (4)2)题目描述: (4)3)题目要求: (4)三、课程设计报告内容 (4)3.1设计方案的论证: (4)3.2硬件及软件开发平台: (5)3.3各个功能模块图设计 (5)具体模块划分算法: (5)3.4详细设计 (11)3.4.1模型层设计 (11)3.4.2游戏演示 (16)3.5系统测试 (18)3.5.1快捷键测试 (18)3.5.2右侧快捷按钮测试 (18)3.5.3界面菜单选项的功能测试 (18)3.5.4 按键事件的功能测试 (19)3.5.5方块堆砌与消行测试 (19)3.5.6 测试结果分析 (20)四、结论 (20)1、问题: (20)2、解决方法: (20)五、结束语 (20)六、参考书目: (21)七、附录:(源程序清单) (21)一、课程设计目的1)运用Java实现小游戏的开发2)了解Java开发项目的流程3)掌握规划,设计,开发,测试的能力二、课程设计题目描述和要求1)题目:RussiaBlocksGame(俄罗斯方块)2)题目描述:RussiaBlocksGame是基于JAVA-J2SE平台开发的一款JAVA小游戏。

3)题目要求:熟悉java的编程环境J2SDK,掌握Application 和Applet的程序结构,并能熟练编写和调试两类程序。

熟练使用各种常用类库。

理解JDK的事件处理机制,掌握java.awt 、javax.swing,javax.swing.event中的GUI标准组件的用法,学会合理运用布局策略、综合运用各种界面元素,编程构造满足应用需要的图形工作界面。

三、课程设计报告内容3.1设计方案的论证:本游戏是根据流行的俄罗斯方块的样式改变而成的,但屏蔽了音乐,背景图片等功能,因为无法掌握深奥的算法。

JAVA课程设计 俄罗斯方块

JAVA课程设计  俄罗斯方块

JAVA语言实现俄罗斯方块的代码实现
初始化游戏界面:创建JFrame对象,设 置大小和标题
游戏结束处理:判断游戏是否结束,显 示得分和重新开始按钮
绘制游戏网格:使用二维数组存储游戏 状态,绘制每个方块
优化游戏性能:使用双缓冲技术,提高 游戏流畅度
控制游戏逻辑:监听键盘事件,实现方 块的移动、旋转和消除
游戏逻辑的实现
游戏界面:显示游戏区域、得分、等级等信息 游戏操作:通过键盘或鼠标控制方块的移动和旋转 游戏规则:方块掉落、消除、得分等规则 游戏结束:当游戏区域被填满或达到一定分数时结束游戏
游戏音效和动画效果的实现
音效:使用Java的 Audio类播放音效 文件
动画效果:使用 Java的Swing库中 的JPanel和JLabel 组件实现动画效果
易 于 学 习 : J AVA 具 有 简 洁 的 语 法 和 丰 富 的类库,使得学习JAVA语言相对容易。
JAVA语言在游戏开发中的应用
JAVA语言具有跨平台性,可以在多种操作系统上运行,适合游戏开发。 JAVA语言具有丰富的API,可以方便地实现游戏功能。 JAVA语言具有强大的图形处理能力,可以方便地实现游戏画面。 JAVA语言具有良好的安全性和稳定性,适合大型游戏的开发。
Hale Waihona Puke 05 课程设计的总结和展望
课程设计的收获和不足
收获:掌握了JAVA编程的基本知识和技能,提高了逻辑思维能力和解决问题的能力。
不足:在课程设计中遇到了一些困难,如代码编写错误、程序运行异常等,需要加强实践和 经验积累。
展望:希望在未来的课程设计中能够更加熟练地运用 JAVA编程,提高程序设计的质量和效率。
打包发布:使用JAR文件打包游戏,方 便分发和运行

《Java程序设计》实训报告范文-俄罗斯方块

《Java程序设计》实训报告范文-俄罗斯方块

《Java程序设计》实训报告范文-俄罗斯方块——《俄罗斯方块》一、实训任务及要求:1.1、实训任务1.运用Java实现小游戏的开发2.了解Java开发项目的流程3.掌握规划,设计,开发,测试的能力1.2、实训要求熟悉java的编程环境J2SDK,掌握Application和Applet的程序结构,并能熟练编写和调试两类程序。

熟练使用各种常用类库。

理解JDK的事件处理机制,掌握java.awt、java某.wing,java某.wing.event中的GUI标准组件的用法,学会合理运用布局策略、综合运用各种界面元素,编程构造满足应用需要的图形工作界面。

二、需求分析:1.课程设计的目的和意义2.系统功能设计1.本系统主要设计以下几种功能2.1、游戏难度选择功能3.游戏难度选择界面设置在程序运行开始时,一共有九种难度供玩家选择,每选一级难度,都会相应地显示出代表该难度的图片。

开始时不设置任何默认的难度,如果玩家不选难度直接按“Enter”进入,将会弹出提示框,提示其先选难度再进入。

4.2、方块下落、变形功能5.在整个俄罗斯方块游戏中,方块的设计是核心。

这里设计了一个方块类:Square(),用来生成方块以及实现块的左移、右移、向下、变形、重画、同步显示、初始化新块等。

6.3、自动升级功能7.当分数累积到一定大小时,系统将自动为玩家提高难度。

这里设置了每消除10行方块,就增加一级难度。

当难度增加的时候,方块会相应地改变颜色,以作为对玩家的提示。

8.4、游戏音乐功能9.游戏开始音乐就自动播放,游戏暂停与结束时音乐相应消除。

10.5、获取帮助功能11.这里设置了一个类,用来显示帮助,按F1键就能弹出窗口,显示游戏规则。

3.系统功能设计分析GameArea,GameSetting,GameOver,Help,ImagePanel,JieMian,MyPane l,MyTimer,PlayMidi,WinLitener,每个类的描述如下:2.1、Square,方块类。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JAVA程序设计课程设计之俄罗斯方块年级:13级班级:T412 网络工程指导老师:朱林小组成员:20138346021 许浩洋时间:2015年11月11日目录摘要................................................................. 第一章课程设计要求..................................................第二章设计概要......................................................2.1 功能设计......................................................2.2 功能分析......................................................2.2.1 系统操作界面...............................................2.2.2 程序主要功能说明...........................................第三章调试分析与测试结果............................................3.1 游戏运行界面..................................................3.2 测试项目......................................................3.2.1 功能区按键测试............................................3.2.2 键盘功能测试..............................................3.2.3 游戏结束测试..............................................第四章设计总结......................................................4.1 改进意见......................................................4.2 《Java课程设计》心得体会 ......................................摘要在现代,高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,一些有趣的桌面游戏已经成为人们在使用计算机进行工作或学习之余休闲娱乐的首选,而俄罗斯方块游戏是人们最熟悉的小游戏之一。

俄罗斯方块(Tetris, 俄文:Тетрис)是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。

俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。

由于上手简单、老少皆宜,从而家喻户晓,风靡世界。

为此,我们设计了一款简单的俄罗斯方块JAVA游戏程序,以便更好的满足广大电脑工作者闲暇之余的消遣,并且也让我们学到编程技术与团队意识。

关键字:俄罗斯方块、JAVA游戏、编程第一章课程设计要求题目名称:俄罗斯方块题目类型:设计型课程设计目的:1)了解Java的基本使用方法。

2)熟悉eclipse的运行环境。

3)用JAVA来设计一个俄罗斯方块的小游戏。

4)基本实现俄罗斯方块的应用功能。

实验原理:JAVA程序分析与设计、类的灵活运用、多态技术、模板技术、异常处理等。

实验内容:本俄罗斯方块游戏是对于随机给出不同的形状(长条形、Z字形、反Z 形、田字形、L字形、反L形、T字型)下落填充给定的区域,若填满一条便消掉,记分。

若在游戏中各形状填满了给定区域,为输者。

第二章设计概要2.1 功能设计本项目是为了实现俄罗斯方块的基本功能而设计的,基本能够达到俄罗斯方块的各种游戏性。

项目需求分析如下:1)由方块组成的不同的随机图形会从区域上方开始缓慢落下。

2)玩家可以做的操作有:以90度为单位旋转方每一格块。

以格子为单位左右移动方块,让方块加速落下。

3)方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处,而新的随机图形会出现在区域上方开始落下。

4)当区域中某一列横向格子全部由方块填满,则该列会自动消除并成为玩家的得分。

5)一次性销毁不同行数方块得分不同,一行1分,两行2分,三行5分,四行10分。

6)当固定的方块堆到区域最上方,则游戏结束。

2.2 功能分析2.2.1 系统操作界面2.2.2 程序主要功能说明1.面板画笔类代码:package Tetris;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;import java.util.Arrays;import java.util.Timer;import java.util.TimerTask;import javax.swing.JFrame;import javax.swing.JPanel;public class TetrisPanel extends JPanel{//游戏主面板20行10列private static final int ROWS = 20;private static final int COLS = 10;//代表方块着陆的墙private Cell[][] wall = new Cell[ROWS][COLS];//定义每一小块的大小private static final int CELL_SIZE = 25;//游戏得分private int score;//游戏销毁行数private int lines;//一次性销毁行数的计分标准(0行=0分,1行=1分,2行=4分,3行=10分,4行=20分)private static final int [] SCORE_LEVEL ={0,1,4,10,20};//游戏结束标记private boolean gameOver = false;//游戏暂停标记private boolean pause = false;//正在下落的四格方块private Tetromino currentTetro ;//下一个下落的四格方块private Tetromino nextTetro ;//定义游戏定时器private Timer timer;public static void main(String[] args){JFrame frame = new JFrame("俄罗斯方块");int width = (COLS+8)*CELL_SIZE+100;int height = ROWS*CELL_SIZE+100;frame.setSize(width, height);frame.setLocationRelativeTo(null);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//取消系统默认布局frame.setLayout(null);TetrisPanel panel = new TetrisPanel();panel.setLocation(45, 35);panel.setSize((COLS+8)*CELL_SIZE,ROWS*CELL_SIZE+1);frame.add(panel);frame.setVisible(true);panel.action();}public void paint(Graphics g){super.paint(g);//填充背景颜色this.paintBackground(g);//绘制游戏墙paintWall(g);//绘制分数墙paintScore(g);//绘制面板边框paintTetrisBorder(g);//绘制当前四格方块paintCurrentTetro(g);//绘制下个四格方块paintNextTetro(g);}//private static final int BG_COLOR = 0xC3D5EA;//private static final int BORDER_COLOR = 0x667799;//private static final int FONT_COLOR = 0x000000;//绘制背景的方法public void paintBackground(Graphics g){g.setColor(new Color(BG_COLOR));//this.setBackground(new Color(BG_COLOR));g.fillRect(0, 0, this.getWidth(), this.getHeight()); }//绘制游戏墙的方法public void paintWall(Graphics g){for(int row=0;row<ROWS;row++){for(int col=0;col<COLS;col++){Cell cell = wall[row][col];int x =col*CELL_SIZE;int y= row*CELL_SIZE;if(cell==null){g.setColor(new Color(BORDER_COLOR));g.drawRect(x, y, CELL_SIZE, CELL_SIZE);}else{g.setColor(new Color(cell.getColor()));g.fillRect(x, y, CELL_SIZE, CELL_SIZE);g.setColor(new Color(BORDER_COLOR));g.drawRect(x, y, CELL_SIZE, CELL_SIZE);}}}}//绘制分数墙的方法public void paintScore(Graphics g){int x = 12*CELL_SIZE;int y = 6*CELL_SIZE;Font font = new Font("楷体",Font.BOLD,23);String msg ="分数:"+score;g.setColor(new Color(FONT_COLOR));g.setFont(font);g.drawString(msg, x, y);y+=2*CELL_SIZE;msg = "行数:"+lines;g.drawString(msg, x, y);if(gameOver){msg = "(T_T)【S】再来";y+=2*CELL_SIZE;x-=CELL_SIZE;g.drawString(msg, x, y);}else if(pause){msg = "【C】继续";y+=2*CELL_SIZE;g.drawString(msg, x, y);}else{msg = "【P】暂停";y+=2*CELL_SIZE;g.drawString(msg, x, y);}}//绘制面板边框的方法public void paintTetrisBorder(Graphics g){g.setColor(new Color(BORDER_COLOR));g.drawRect(0, 0, CELL_SIZE*(COLS+8)-1, CELL_SIZE*ROWS); }//绘制当前四格方块的方法public void paintCurrentTetro( Graphics g){if(currentTetro==null){//如果没有四格方块,则返回不绘画return;}for(Cell cell:currentTetro.cells){int row = cell.getRow();int col = cell.getCol();int x = col*CELL_SIZE;int y = row*CELL_SIZE;g.setColor(new Color(cell.getColor()));g.fillRect(x, y, CELL_SIZE, CELL_SIZE);g.setColor(new Color(BORDER_COLOR));g.drawRect(x, y, CELL_SIZE, CELL_SIZE);}}//绘制下个四格方块的方法public void paintNextTetro( Graphics g){if(nextTetro==null){//如果没有四格方块,则返回不绘画return;}for(Cell cell:nextTetro.cells){int row = cell.getRow();int col = cell.getCol();int x = (col+9)*CELL_SIZE;int y = (row+1)*CELL_SIZE;g.setColor(new Color(cell.getColor()));g.fillRect(x, y, CELL_SIZE, CELL_SIZE);g.setColor(new Color(BORDER_COLOR)); g.drawRect(x, y, CELL_SIZE, CELL_SIZE); }}//让四格方块动起来的方法public void action(){startGameAction();//请求此容器获取输入焦点this.requestFocus();this.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){int key= e.getKeyCode();if(gameOver){if(key==KeyEvent.VK_S){ startGameAction();}return;}if(pause){if(key==KeyEvent.VK_C){continueAction();}return;}switch(key){case KeyEvent.VK_DOWN:softDownAction();break;case KeyEvent.VK_LEFT:moveLeftAction();break;case KeyEvent.VK_RIGHT: moveRightAction();break;case KeyEvent.VK_UP:rotateRightAction();break;case KeyEvent.VK_SPACE: hardDownAction();break;case KeyEvent.VK_P:pauseAction();break;}repaint();}//暂停游戏的方法private void pauseAction() {pause = true;timer.cancel();}//继续游戏的方法private void continueAction() {pause = false;timer = new Timer();timer.schedule(new TimerTask() {public void run() {softDownAction();repaint();}}, 500, 500);}});}//在游戏开始时调用或者【S】按下时调用public void startGameAction(){ gameOver = false;pause = false;score = 0;lines = 0;//清空游戏主面板emptyWall();//生成下一个四格方块nextTetromino();//生成定时器对象timer = new Timer();//启动定时器工作timer.schedule(new TimerTask() {public void run() {//调用面板的四格方块下落方法(自由下落)softDownAction();//重画面板repaint();}}, 500, 500);}//清空游戏主面板方法public void emptyWall(){for(int row =0;row<ROWS;row++){//wall[row]这一行全部用null表示Arrays.fill(wall[row], null);}}//生成(随机)下一个四格方块,1.下一个变成当前的。

相关文档
最新文档