在家闲着没事,做了一个俄罗斯方块程序,界面如下:

java编写的俄罗斯方块小程序

java编写的俄罗斯方块小程序

大体思路如下:

1. 每个方块占用固定大小,我这里的方块是20*20像素,方块显示区域为15行9列,

因此需要绘制一个180*300的矩形区域,用来显示方块。

2.创建各种类型的方块对象,一共7种方块,每种方块其实可以看成四个小方块的组合,我这里使用二维数组来存储不同类型的方块;

java编写的俄罗斯方块小程序java编写的俄罗斯方块小程序java编写的俄罗斯方块小程序java编写的俄罗斯方块小程序java编写的俄罗斯方块小程序java编写的俄罗斯方块小程序java编写的俄罗斯方块小程序

3.接下来将方块绘制在Panel上面。

4.创建一个线程,定时改变方块的位置,每次让方块下移一步;

5.还需要创建一个线程定时刷新界面,这样方块就在界面往下移动了;

6.监听键盘事件,处理方向键被按下事件,当方向键被按下时改变方块的位置;

7.碰撞检测,每次方块移动时检测方块是否超出界面;

8.当方块移动到底部或者碰撞到其他方块时,方块停止移动;

9.创建一个15行9列的二维数组来存储停止移动的方块,并将方块绘制到界面上;

10.每次方块停止移动后,检测是否可以消除方块,也即是检测二维数组是否存在整行的方块,如果存在则将该行方块

清空,上面的所有方块下移;

11.使用方块的旋转,这一步最复杂,可以参考https://blog.csdn.net/janchin/article/details/6310654

使用二维数组来存储每种类型的方块,方块的旋转就转变成了二维数组的旋转,需要选取一个点作为旋转的轴心,旋转后根据轴心的坐标来调整方块的坐标。

12.每消除一行方块,计分并计算等级;

13.检测方块是否碰撞到界面顶部,碰撞到顶部则游戏结束,显示游戏结束提示并显示重新开始按钮;

代码已经上传到github上,github地址:https://github.com/hgq0916/tetris.git

相关文章:

  • 2022-01-08
  • 2022-01-15
  • 2021-05-23
  • 2021-11-07
  • 2021-06-10
  • 2021-09-09
  • 2021-12-11
  • 2021-12-08
猜你喜欢
  • 2021-10-26
  • 2021-07-28
  • 2021-12-28
  • 2021-07-31
  • 2021-12-08
  • 2021-12-17
相关资源
相似解决方案