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

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

大体思路如下:

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

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

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

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

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值