之前我在以前的旧电脑里面找到了大学时候写的俄罗斯方块,用qt写的,就把它找了出来试试还可编译运行就把它记录下来作为纪念。
首先的话整个游戏都是用c++写的,比较简单,当时的想法是先做出来看看,所以很多地方不是很完善,只能看看。qt是5.0以上的版本 截图:
界面是简单了点,但是基本都是可以玩的
项目地址:https://github.com/absolve/tetris
现在主要介绍一下基本的内容,俄罗斯方块基本上就是控制7种方块,满一行就消除得分的方式,那么当时在设计的时候我就是用坐标的方式
来记录不同的方块,每个方块根据坐标原点,长度为1的方式记录下来
那么可以根据每个坐标绘制出任意长度的方块,那么方块的旋转就是更改坐标
之后就是绘制方块的方式,根据qt自带的函数进行绘制,主要是继承QWidget类,然后重写void paintEvent(QPaintEvent *);方法进行绘图,
键盘的方式是重写void keyPressEvent(QKeyEvent *);来获取键盘的按键,整个界面的绘制都是在QWidget里面进行,只要开启一个定时器
用来下降方块就好了。游戏中需要一个数组把游戏内所有的方块全部储存起来用来进行判断游戏是否结束或者消除。
这个数组就可以用来进行保存整个游戏的信息了。
具体游戏中其他的内容都可以在代码中看到,本身游戏也比较简单。
来源:oschina
链接:https://my.oschina.net/u/2000932/blog/3209173