翻金币的小游戏

Posted by 肥仔 on August 10, 2020

项目简介

翻金币的小游戏,跟着教程来的 具体实现可以看b站上的视频

创建项目、添加项目资源

项目 基本配置

  • 设置背景图标
  • 设置固定大小
  • 设置项目标题
  • 设置背景
  • 背景标题
  • 开始菜单 – 退出功能
  • 创建开始按钮

    封装自定义按钮 MyPushButton

  • 构造函数 ( 默认显示图片, 按下后显示的图片)
  • 测试开始按钮
  • 开始制作特效
  • zoom1 向下跳
  • zoom2 向上跳

    创建选择关卡场景

  • 点击开始按钮后 延时进入到 选择关卡场景
  • 配置选择关卡场景(图标、标题、大小)
  • 设置背景图片、设置标题图片
  • 创建返回按钮
  • 选择关卡的返回按钮特效制作
  • 点击后切换另一个图片
  • 重写 void mousePressEvent
  • 重写 void mouseReleaseEvent

    开始场景与选择关卡场景的切换

  • 点击选择关卡场景的返回按钮,发送一个自定义信号
  • 在主场景中监听这个信号,并且当触发信号后,重新显示主场景,隐藏掉选择关卡的场景

    选择关卡中的 按钮创建

  • 利用一个for循环将所有按钮布置到场景中
  • 在按钮上面 设置一个QLabel显示关卡数
    • QLabel 设置 大小、显示文字、对齐方式、鼠标穿透
  • 给每个按钮 监听点击事件

    翻金币场景创建

  • 点击选择关卡按钮后,进入到翻金币游戏场景
  • 配置翻金币游戏场景 设置标题、图标、大小、设置背景
  • 实现返回按钮,可以返回到上一个场景(选关场景)
  • 实现三个场景之间的切换

    实现显示关卡标签

  • 在左下角显示玩家具体的关卡标签
  • QLabel创建设置 大小和位置label->setGeometry(30, this->height() - 50,120, 50);
  • QFont font 设置字体以及字号
  • 给QLabel设置字体 setFont(font)

    创建金币类

  • 先将金币的背景图案 放入到PlayScene中
  • 创建 MyCoin自定义金币按钮类
  • MyCoin::MyCoin(QString btnImg) 构造函数中传入默认显示的图片金币
  • 在PlayScene创建所有的金币按钮

    每个关卡的默认显示

  • 先引入dataConfig.h 和 dataConfig.cpp文件到项目中
  • 在PlayScene 中写了 int gameArray[4][4]的数组 维护每个关卡的金币状态
  • 初始化每个关卡的显示

    金币翻转特效

  • 给每个硬币加属性 posX 坐标x posY 坐标y ,bool flag 正反面标志
  • 给MyCoin 加函数 changFlag改变标志
    • 如果是flag为true 改为false 并且开启定时器1 (正面翻反面)
    • 如果flag为false ,改为true,并且开启定时器2 (反面翻正面)
    • 实现定时器中的内容
  • 测试 金币翻银币 以及 银币翻金币

    解决快速点击的效果不好

  • 在MyCoin中加入了 isAnimation 判断 是否正在做动画条件
  • 当按下 MyCoin 判断是否在做动画,如果做动画,直接return,保证金币和银币动态切换的完整效果

    翻转周围金币

  • 点击金币后 ,延时翻转周围金币实现

    判断胜利

  • PlayScene中 添加 isWin的标志 来判断是否胜利
  • 如果胜利了,打印胜利信息
  • 将所有按钮 屏蔽掉点击

    胜利图片特效

  • 将胜利图片放入到游戏场景外
  • 当游戏胜利时,移动到屏幕中央,做胜利效果

    添加音效资源

  • QSound 所属模块 multimedia 需要在.pro文件中加入这个模块
  • 在三个场景中添加音效 QSound * s = new QSound (“资源”)
  • 播放 s ->play
  • s->setLoop () 设置播放次数 -1代表无限循环播放

    项目的优化

  • 将三个场景的切换位置 一致

    项目打包发布 以及游戏扩展玩法简介

    打包可以参考这篇博客 QT5的程序打包发布(打包成exe可执行程序),

  • windeployqt 记得用qt自带的cmd,生成exe,进入目录打包windeployqt xxx.exe
  • Engima Virtual Box