在经过基础内容的学习和简单的小示例练习后,这节我们用Qt做个俄罗斯方块小游戏。
本文会描述实现俄罗斯方块的部分思路,代码开源,详细可见代码。
链接获取方式
- 开源代码已上传gitee:
- 关注“程序媛讲QT”公众号,回复“俄罗斯方块”获取链接。
俄罗斯方块实现
首先新建工程,在ui设计器中做好布局。其中在游戏主界面和提示下一个方块形状界面分别拖入控件widget,为提升为自定义类做准备。
在工程中添加两个新的类,并在ui设计器中对两个控件widget做提升,在手把手教QT—8.自定义控件有讲过具体操作。
已提升的两个控件都通过paintEvent事件函数来绘画。例如游戏主界面显示Game_Area类中:
void Game_Area::paintEvent(QPaintEvent *event)
{
draw_frame(); //绘制边框
draw_droppingBlocks(); //正在下落的方块
draw_fixedBlocks(); //固定住的方块
update();
}
void Game_Area::draw_frame()
{
QPainter painter(this);
painter.setPen(Qt::SolidLine);
QLineF pointL[4];
pointL[0].setLine(0,0,878,0);
pointL[1].setLine(0,0,0,525);
pointL[2].setLine(878,0,878,525);
pointL[3].setLine(0,525,878,525);
pa