当前位置: 首页 > news >正文

C++学习之QT综合项目二经典翻金币小游戏及打包

1.项目简介及创建

#include "chooselevelscene.h"
#include <QMenuBar>
#include <QMenu>
#include <QPainter>
#include "mypushbutton.h"
#include <QTimer>
#include <QDebug>
#include <QLabel>
#include <QSound>
 
ChooseLevelScene::ChooseLevelScene(QWidget *parent) : QMainWindow(parent)
{
    //设置窗口固定尺寸
    this->setFixedSize(320,588);
    //设置图标
    this->setWindowIcon(QPixmap(":/CoinRes/Coin0001.png"));
    //设置标题
    this->setWindowTitle("选择关卡");
 
    //选关按钮音效
    QSound * chooseSound = new QSound(":/CoinRes/TapButtonSound.wav",this);
    //返回按钮音效
    QSound * backSound = new QSound(":/CoinRes/BackButtonSound.wav",this);
 
    //创建菜单栏
    QMenuBar * bar =  menuBar();
    this->setMenuBar(bar);
    //创建开始菜单
    QMenu * startMenu = bar->addMenu("开始");
    //创建退出菜单项
    QAction * quitAction =  startMenu->addAction("退出");
    //监听退出菜单项
    connect(quitAction,&QAction::triggered,[=](){ this->close(); });
 
    //返回按钮
    MyPushButton * backBtn = new MyPushButton(":/CoinRes/BackButton.png",":/CoinRes/BackButtonSelected.png");
    backBtn->setParent(this);
    backBtn->move(this->width()-backBtn->width(),this->height() - backBtn->height());
 
    //监听返回按钮点击
    connect(backBtn,&MyPushButton::clicked,[=](){
        backSound->play();
        QTimer::singleShot(500,[=](){
            //延时 返回主场景,发送自定义信号
            emit this->chooseSceneBack();
        });
    });
 
 
    //创建选择关卡按钮
    for(int i = 0 ; i < 20;i++)
    {
        MyPushButton * menuBtn = new MyPushButton(":/CoinRes/LevelIcon.png");
        menuBtn->setParent(this);
        menuBtn->move( 25 + (i%4)*70 , 130 + (i/4)*70 );
        connect(menuBtn,&MyPushButton::clicked,[=](){
            //qDebug() << "您选择的是第" << i + 1 << "关" ;
            //播放音效
            chooseSound->play();
            if(this->pScene == NULL)
            {
                this->hide();
                this->pScene = new PlayScene(i+1);
                this->pScene->setGeometry(this->geometry());
                this->pScene->show();
 
                connect(pScene,&PlayScene::chooseSceneBack,[=](){
                    this->setGeometry(this->pScene->geometry());
                    this->show();
                    delete this->pScene;
                    this->pScene = NULL;
                });
            }
        });
 
        //显示按钮上的文字
        QLabel * label = new QLabel;
        label->setParent(this);
        label->setFixedSize(menuBtn->width(),menuBtn->height());
        label->setText( QString::number( i+1 ));
        label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        label->move(25 + (i%4)*70 , 130 + (i/4)*70);
        //设置属性 鼠标穿透属性  51
        label->setAttribute(Qt::WA_TransparentForMouseEvents);
    }
 
}
 
void ChooseLevelScene::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    QPixmap pix;
    pix.load(":/CoinRes/OtherSceneBg.png");
    painter.drawPixmap(0,0,this->width(),this->height(),pix);
 
    //加载标题
    pix.load(":/CoinRes/Title.png");
    painter.drawPixmap(this->width()*0.5-pix.width()*0.5,30,pix.width(),pix.height(),pix);
}

2.导入资源

3.主场景搭建

4.开始创建按钮

5.开始按跳跃效果实现

6.选择关卡场景搭建

7.主场景进入选关场景

8.返回按钮创建

9.返回按钮功能实现

10.选关按钮创建

11.选关按钮数字显示

12.游戏场景搭建

13.游戏场景配置

14.游戏场景的返回按钮实现

15.游戏场景显示当前卡号

16.硬币背景图创建

17.硬币类的创建

18.关卡配置数据引入

19.初始化全部关卡

20.翻转硬币实现

21.禁用按钮

22.翻转周围硬币实现

23.游戏胜利检测

24.胜利效果展示

25.胜利后禁用硬币惦记

26.音效添加

27.项目优化

28.辅助玩法介绍

29.打包发布流程说明

30.安装和卸载项目

相关文章:

  • 【LeetCode合并区间C++实现】【c++】【合并区间】
  • javase集合框架List篇
  • ds回答 什么是数据召回
  • 【数据结构】二叉搜索树、平衡搜索树、红黑树
  • 【初探数据结构】带环链表:原理、判断与数学证明
  • 使用 Switch Plus 将 ADTS 文件转为 MP3 格式简单教程
  • 「mysql」Mac mysql一路畅通式安装
  • Linux基础开发工具—vim
  • 【JavaEE】SpringBoot快速上手,探秘 Spring Boot,搭建 Java 项目的智慧脚手架
  • 软件工程:软件开发之需求分析
  • volatile限定符
  • XXE靶机详细通关攻略(flag)
  • 订阅指南:用关键指标驱动业务增长
  • 小白学Agent技术[5](Agent框架)
  • Java多线程编程实战:synchronized与Lock锁对比
  • 【Mastering Vim 2_11】第八章:玩转 Vimscript(下)—— 从零开始打造一个 Vim9 插件(含完整发布流程)
  • Docker介绍和安装
  • 「MySQL 数据库优化」降低存储与查询成本的最佳实践
  • 【计算机组成原理】第三章 存储系统
  • 第八届蓝桥杯单片机省赛
  • 俄军击落多架企图攻击莫斯科的无人机
  • 10家A股农商行去年年报:瑞丰银行营收增速领跑,常熟银行等4家净利增速超11%
  • 北美票房|“雷霆”开画票房比“美队4”低,但各方都能接受
  • 媒体评特朗普对进口电影征100%关税:让好莱坞时代加速谢幕
  • 热点问答丨新加坡人民行动党缘何再赢议会选举
  • 岳伟华任北京大学第六医院院长,陆林院士卸任