创建Cell类
定义基本的元素:小方块(cell)的基本参数:行,列,小方块图片
提供无参有参构造器
提供get/set方法
定义本游戏最基本的行为:左移一格;右移一格;下落一格
Tetromino类,提供方块的各种行为方法
将一个四个方块视为一个数组
将一个四个方块的四种状态也定义为数组
添加一个作为旋转计数器的量
定义cell的各种行为:下落;左移;右移;旋转以及旋转的方法
然后定义内部类state,此类用来描述方块旋转的四种状态,首先定义八个整型变量,用来描述四个方块的位置.0,1,2,3分别代表四个方块,我们旋转的时候以方块0为轴,其余三个方块向右旋转
然后提供无参有参构造器和get/set方法
定义七种方块(O,T,I,J,L,S,Z):(注意七种方块均应该继承Tetromino类)
主类Tetris类:游戏的核心,使用JPanel绘制游戏界面
首先定义正在下落和即将下落的四格方块
定义一个叫做墙的二维数组作为游戏界面
定义分数
游戏界面的各种图片放入此项目的包内
为了防止各种意外,我们将其放入try…catch中,这时会读取包内的同名图片
绘制游戏的各种图片,需要使用JPanel类中的paint()方法
开始设置游戏的各种状态
下落之后就要判断一行是否填满以便进行消除,所以我们定义布尔型方法,带参数row
若其中一行满了则需进行消除,首先定义变量来统计消除的行数
定义可以下落方法
接下来把以上方法都编入start()
开启键盘监听事件
使用多线程播放背景音乐,程序不会停止
设置进度条