基于Qt5的方块游戏

本文介绍了一个基于Qt5开发的方块游戏,包括游戏加载动画、用户注册登录、主界面设计、排行榜、方块操作等功能。游戏增加了技能消除、难度自增和排行榜系统,使用了自定义的QGraphicsView、QWidget、QPushButton等类,以及SQLite数据库进行数据存储。文章详细阐述了各个模块的设计与实现,包括游戏的暂停、音效切换和功能测试等环节。
摘要由CSDN通过智能技术生成

1.项目简介

1.1项目说明:

该项目为一款基于QT的方块游戏项目。该项目与传统的俄罗斯方块游戏不同的是,在实现了传统方块游戏满行消除、多行消除、以及分值统计的基本需要。

首先,额外增添了技能项,当达到一定的条件,玩家便能够释放技能直接清除全屏方块;其次,额外设置了游戏难度自增,随着一定行数的消除,方块下坠速度会越来越快,增加游戏难度;最后,额外增添了排行榜,在游戏结束后,玩家的数据将会显示在排行榜之中。

1.2项目技术:

本项目对QT中QGraphicsView类自定义,实现场景视图上的一切操作、并且响应boxGroup的消息、以及向主窗体传递消息。

对QWidget自定义,为程序的主窗体、显示一些窗口版块、以及对于来自view消息的响应。

对QPushButton进行自定义,实现一些鼠标进入、离开按钮的时间、音效、亮度变化的效果。

对QGraphicsItemGroup类自定义,实现几种不同的方块组形状及颜色的初始化、接收键盘消息,以完成俄罗斯方块对键盘的各种操作进行响应、使用计时器开始和暂停游戏、完成对场景坐标的变换,实现俄罗斯方块的翻转、碰撞检测。

对QGraphicsObject类自定义,实现方块内的小格子、以及碰撞的检测。

使用QT内置的sqlite,并调用QSqlDatabase进行了数据库的操作。

使用PS技术对项目素材进行了加工。

 

2.需求分析及界面设计

2.1需求分析

实现游戏初始加载动画

实现用户注册、登录界面及功能(含数据库检验)

实现游戏主界面设计

实现历史记录排行榜

实现方块形状及颜色的初始化

实现方块通过按键旋转(包含侧边碰撞返回)

实现方块满行消除(包含底边碰撞返回)

实现游戏中途暂停、鼠标脱离窗口自动暂停

实现技能的全屏消除

实现游戏中不同场景背景音乐的切换

2.2界面设计

界面交互设计的原则

统一性原则

界面风格统一:
用相同风格的素材进行界面背景的实现,对界面各空间采取相容的色调的控件,不同各种颜色胡乱混搭

 

美观性原则

界面美观大方,不同的游戏元素缓解玩家的视觉疲劳

 

易用性原则

操作方式应贴合使用者的日常使用习惯,不能设计反人类的操作体验

 

 

如下图所示:

游戏初始加载界面:

 

 

 

 

 

 

 

 

 

 

游戏加载成功:

 

 

 

 

注册登录界面:

文本输入框、按钮、标题栏统一使用与背景图片相合的色调

 

 

 

登入成功后,排行显示界面:

 

 

 

 

游戏主界面:

3.概要设计

3.1实现游戏初始加载动画

程序启动画面的设计主要是使用了Qt中的QSplashScreen这个类,为这个类创建对象的时候使用setPixmap传入图片,并且设置该对象的大小尺寸。

使用showMessage在图片上添加对应的文字,比如游戏规则。

接着调用show()方法即可显示。

需要结束启动画面时,则调用finish()方法,该方法的用来指定窗口初始化完成后结束启动画面。

 

 

部分代码如下:

 

QSplashScreen*splash=newQSplashScreen;

   splash->setPixmap(QPixmap("路径"));

   splash->setStyleSheet("font-size:16px;font-weight:480");

   splash->showMessage(QObject::tr(""),Qt::AlignCenter,QColor(255,255,255,255));

   splash->show();

   QThread::sleep(4);

   splash->showMessage(QObject::tr("   \t游戏加载成功,正在进入..."),Qt::AlignCenter,QColor(255,255,255,255));

   splash->finish(&w);             //当主窗口启动后,启动画面隐藏

deletesplash;

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2.实现用户注册、登录界面及功能(含数据库检验)

初始化数据库,调用QSqlDatabase,进行数据库打开操作。建立一张新表,其中该标的属性列如下:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值