项目简介:翻金币游戏
目录
(1)前期准备:创建,导入资源
创建项目,以QtMainWindow为基类
添加项目资源 resfile
(2)主界面设置
基本配置:
- 设置背景图标
- 设置固定大小
- 设置项目标题
- 设置背景图片
- 设置背景标题
- 开始菜单-退出功能
(3)mypushbutton进行封装
pushbutton的封装,有两个参数,第一个参数为正常显示参数,不带默认值,必须由外部传入
第一个参数,如果此时按下按钮有对应动态特效而不需要替换图片,则不需要传入第二个参数,直接采用默认参数即可,这样做的好处是更好的封装,提高代码复用率
- 开始按钮(仅传入一个参数),及按动特效
- 返回按钮,需要切换按压前后图片,重写mousePressEvent和mouseReleaseEvent
(4)关卡选择场景
关卡选择场景中需要监听返回按钮,返回主界面场景
主界面实例化关卡选择场景对象,进行信号槽监听
关卡选择按钮,20个关卡,设置二维矩形分布的20个按钮,按钮上需要lable标签显示关卡号,设置label控件覆盖按钮实现关卡号文字显示,click点击操作需要设置击穿属性,否则按钮监听click信号受阻
(5)游戏场景
游戏内容:金币翻转二维数组初始化设置
需要额外引入配置文件,内部对金币二维数组的初始化进行设置
游戏场景中对翻金币过程的逻辑控制
金币位置不同,翻转规则不同,需要考虑边界上的翻转情况,进行逻辑限定
每一个金币翻转都有一个过程,银币翻转也是如此,需要设定一个QTimer定时器来限定这个翻转过程中各个图片的切换时间限制
(6)后期优化
- 金币翻转需要标志位限定,保证翻转成功后,显示胜利图案,此时再次点击金币不会发生翻转,否则存在游戏bug
根据标志位,重写鼠标点击事件
- 位置优化,每一个场景之间来回切换,切换前后场景设定大小不一致,会出现前后切换的场景位置中心点不固定,忽上忽下,影响游戏体验,通过设置setGeometry保证位置固定
- 增加游戏音效,按钮点击触发不同音效,以及关卡胜利后展现音效,增强游戏体验感
设置不同音效,在信号槽监听到不同信号到来时,play对应的音效