您现在的位置是:主页 > news > 网站反链怎么做/阿里大数据官网

网站反链怎么做/阿里大数据官网

admin2025/6/18 16:14:23news

简介网站反链怎么做,阿里大数据官网,高端网站特色,做ic芯片的要去哪个网站目录音效加载动画演示场景切换方式图片按钮生成项目打包github源码 这是一个金币翻转的小游戏,一共20关,每一关的胜利条件是将所有银币翻转成金币即可。 音效加载 将所有音效配置成qt资源文件在项目pro文件中加入multimedia QT core gui multimedia导…

网站反链怎么做,阿里大数据官网,高端网站特色,做ic芯片的要去哪个网站目录音效加载动画演示场景切换方式图片按钮生成项目打包github源码 这是一个金币翻转的小游戏,一共20关,每一关的胜利条件是将所有银币翻转成金币即可。 音效加载 将所有音效配置成qt资源文件在项目pro文件中加入multimedia QT core gui multimedia导…

目录

    • 音效加载
    • 动画演示
    • 场景切换方式
    • 图片按钮生成
    • 项目打包

github源码

这是一个金币翻转的小游戏,一共20关,每一关的胜利条件是将所有银币翻转成金币即可。



音效加载

  1. 将所有音效配置成qt资源文件
  2. 在项目pro文件中加入multimedia
QT += core gui multimedia
  1. 导入两个头文件
#include <QSound>   
#include <QMediaPlayer>

QSound用于加载并播放wav文件,QMediaPlayer用于加载并播放MP3文件。

  1. 加载并播放
//加载wav文件
QSound *xxxSound = new QSound(":/rec/TapButtonSound.wav");
xxxSound->play();
//加载播放mp3文件
QMediaPlayer *backendSound = new QMediaPlayer(this);
backendSound->setMedia(QUrl("qrc:/rec/disappointed.mp3"));
backendSound->setVolume(20); //音量设置
backendSound->play();

这里注意的是,添加资源路径前面要额外加上qrc,不然音乐播放不出来。

动画演示

所谓的动画其实是由一张或多张不同的图片,通过移动或更替来实现的。

  1. 导入头文件
#include<QPropertyAnimation>
#include <QTimer>
  1. 加载要转为动画的Qlabel

第一种方式是通过一张图片的移动转为动画,利用QPropertyAnimation完成。

//----------------------通过一张图片的移动转为动画
QPropertyAnimation *ani = new QPropertyAnimation(xxLabel,"geometry");
//设置事件间隔
ani->setDuration(1000);
//设置起始位置
ani->setStartValue(QRect(winLabel->x(),winLabel->y(),winLabel->width(),winLabel->height()));
//设置结束位置
ani->setEndValue(QRect(winLabel->x(),winLabel->y()+115,winLabel->width(),winLabel->height()));
//设置缓和曲线
ani->setEasingCurve(QEasingCurve::OutBounce);
//执行动画
ani->start();

第二种方式是通过多张图片的更替转为动画,通过定时器完成,即QTimer。

void MyCoin::changeFlag(){if(this->flag)//正面{this->flag = false;time1->start(100); //开启定时器this->isAnimation = true;}else{this->flag = true;time1->start(100); //开启定时器this->isAnimation = true;}
}
time1 = new QTimer(this);
connect(time1,&QTimer::timeout,[=](){if(!flag){str = QString(":/rec/Coin000%1.png").arg(this->min++); //100毫秒更换一张图片,从而实现动画}else{str = QString(":/rec/Coin000%1.png").arg(this->max--);}});

场景切换方式

这个游戏中,有很多不同的场景,但同一时刻只能存在一个场景。主场景进入次场景,如这里的主界面进入每一关的场景,可以选择下面的方式。即hide和show函数。

//自身隐藏
this->hide();
//显示下一个场景
nextScene->show();

像次场景返回主场景,如这里的关卡场景退出到选择关卡界面,还可以利用下面的方式。

//主场景恢复
this->show();
//次场景删除,指针置空
delete pScene;
pScene = NULL;

图片按钮生成

  1. 导入头文件
#include <QPushButton>
#include <QLabel>
  1. 生成按钮并加载图片

第一种利用按钮实现

//加载图片
QPixmap pix;
bool ret = pix.load(imgPath);
//生成按钮
QPushButton *btn = new QPushButton(this);
btn->setFixedSize(pix.width(),pix.height());
btn->setStyleSheet("QPushButton{border:0px;}");
//btn->setStyleSheet("QPushButton{border-style:none;}");
btn->setIcon(pix);
btn->setIconSize(QSize(pix.width(),pix.height()));

第二种利用QLabel实现。

QLabel *label = new QLabel;
QPixmap pix;
pix.load(":/rec/BoardNode(1).png");
label->setGeometry(0,0,pix.width(),pix.height());
label->setPixmap(pix);
label->setParent(this);
label->move(95+i*50,200+j*50);

备注:鼠标穿透属性,有的时候,我们需要在图片中添加几个文字,我们使用QLabel覆盖上去就可以实现,但原本图像就会因为被文字覆盖,而无法得到鼠标点击事件,这里就需要设置文字图片的鼠标点击穿透性。

//设置鼠标穿透
label->setAttribute(Qt::WA_TransparentForMouseEvents);

项目打包

项目完成后如何打包出来,使得移植到别人电脑上,即使没有相关编译环境、没有安装QT也可以运行呢?这里借助QT的一个小工具实现。

  1. 项目在Release模式下编译运行通过。
  2. 将Release模式下生成的exe程序,复制到桌面一个新建文件夹内,如:new
  3. 打开cmd,cd到桌面的new目录下
  4. 执行下面命令
windeployqt 程序名.exe

windeployqt位于qt安装目录下的bin文件内。