声明:**QT翻金币游戏代码并非本人所写,主要通过学习腾讯课堂视频之后所写。代码中间略有不同。**由于需要完成的设置较多,我就拿出几点我在看视频学习时感觉难点来说
**游戏介绍:**本游戏一共有二十关,你可以从第一关开始接着来,当你完成第一关之后会自动跳到下一关,你还可以直接选择自己想要闯的关卡。进入关卡之后会有一个4*4的网格,里面分布着金币和银币,点击银币它本身和附近的币就会翻面,当网格中只剩金币时,闯关成功。
我在这里提供一下程序所需图片资源与背景音乐资源:https://pan.baidu.com/s/1PvFhuXoqlwYgx-s2bxLjCw
提取码:47a5
视频教程没有这个,你自己没法做。把图片和音乐导入进去,就能按照视频的操作一步步来。
下面我给一下自己的源码,我建议还是自己按照视频理解每个函数的作用敲一遍
源码只是一个参考。
源码:https://pan.baidu.com/s/13sxWoHc5Ek65oa90mKUjTQ
提取码:l8ft
这个游戏里面我完成了一下设置和功能
对于界面一: 设置背景图片,开始按钮创建,创建开始按钮, 开始按钮跳跃特效实现
对于界面二:选择关卡场景配置 新建关卡, 选择关卡配置,实现返回按钮按下效果,实现返回效果,创建选择关卡的按钮,
对于界面三:游戏场景设置 创建游戏场景,设置场景背景, 创建返回按钮 显示关卡号,金币类封装,引用关卡数据,使用金币数据
未解问题:本来我是想换一下背景音乐,但是我发现并不支持MP4格式,我又到“格式工厂”变成wavk格式,但是变换之后太大了,放不进去。有大神会的可以私聊!!!
程序用到很多函数实现了三个界面,我一个个大致说一下每个界面其中一个相对有质量的操作。第一个
第一个画面我是用UI来做的,删除状态栏、工具栏,只用添加一个菜单,然后添加一个退出按钮,名字可以随便取非汉字,在text处修改显示
在这个页面中主要是开始按钮的跳跃实现以及音效的实现,同时在点击开始按钮之后要转入到下一个选关界面。关键在于对函数zoom的理解,脑子里面要有按钮运动的轨迹和想法。
开始按钮跳跃实现
//mainscene.cpp
connect(startBtn,&MyPushButton::clicked,[=](){
//qDebug() << "点击了开始";
//做弹起特效
startBtn->zoom1(); //向下跳跃
startBtn->zoom2(); //向上跳跃
});
void MyPushButton::zoom1()
{
//创建动态对象
QPropertyAnimation * animation = new QPropertyAnimation(this,"geometry");
//设置动画时间间隔
animation->setDuration(200);
//起始位置
animation->setStartValue(QRect(this->x(),this->y(),this->width(),this->height()));
//结束位置
animation->setEndValue(QRect(this->x(),this->y()+10,this->width(),this->height()));
//设置弹跳曲线
animation->setEasingCurve(QEasingCurve::OutBounce);
//执行动画
animation->start();
}
void MyPushButton::zoom2()
{
//创建动态对象
QPropertyAnimation * animation = new QPropertyAnimation(this,"geometry");
//设置动画时间间隔
animation->setDuration(200);
//起始位置
animation->setStartValue(QRect(this->x(),this->y()+10,this->width(),this->height()));
//结束位置
animation->setEndValue(QRect(this->x(),this->y(),this->width(),this->height()));
//设置弹跳曲线
animation->setEasingCurve(QEasingCurve::OutBounce);
//执行动画
animation->start();
}
选择关卡场景配置
新建关卡类
添加新的C++ class文件,类名为ChooseLevelScene 选择基类为QMainWindow
//mainscene.h
#ifndef MAINSCENE_H
#define MAINSCENE_H
#include <QMa