qt王者荣耀皮肤抽奖器

2020-10-28 12:24:43 浏览数 (1)

用qt做了一个王者荣耀皮肤抽奖器,效果如下图。

说一下过程吧,第一步,就是先准备好皮肤的图片,皮肤的图片在王者荣耀的官网是可以下载的,但是过百的下载量确实有点大了,动了个小心思,网上找了一个用py写的爬虫,用来爬了官网的图片。下载地址

将下载好的图片进行分类,这真是在考验我的耐心,对于一个完全对皮肤没认识的来说太艰难了,还好有我三位王者室友的帮助!,很快的对皮肤进行了分类,有288的,有488的,等等。

然后就是qt代码啦,其实代码并不多。

没加载背景的样子,好丑(这不是重点)。

思路就是mainwindow.h头文件下面放的都是皮肤对应的名字。将他们放在字符串数组中,对字符串下标进行随机抽取,然后通过加载字符串加载对应的图片(图片放在资源下面)。

代码语言:javascript复制
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#pragma execution_character_set("utf-8")
#include <QMainWindow>
#include<QTimer>
#include<QTime>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
    Q_OBJECT
    int GameRand(int num); //生成随机数
    int n;
     QString str288[80]={
        "百里守约-绝影神枪",
        "嫦娥-露花倒影",
        "百里玄策-威尼斯狂欢",
        "狄仁杰-锦衣卫",
        "成吉思汗-维京掠夺者",
        "扁鹊-救世之瞳",
        "伽罗-花见巫女",
        "貂蝉-异域舞娘",
        "程咬金-爱与正义",
        "蔡文姬-蔷薇王座",
        "关羽-天启骑士",
        "干将莫邪-第七人偶",
        "东皇太一-东海龙王",
        "大乔-伊势巫女",
        "黄忠-芝加哥教父",
        "鬼谷子-阿摩司公爵",
        "高渐离-金属狂潮",
        "盾山-极冰防御线",
        "狂铁-命运角斗场",
        "姜子牙-时尚教父",
        "后羿-精灵王",
        "公孙离-花间舞",
        "李信-灼热之刃",
        "兰陵王-隐刃",
        "镜-冰刃幻境",
        "花木兰-剑舞者",
        "鲁班大师-归虚梦演",
        "李元芳-特种部队",
        "老夫子-潮流仙人",
        "铠-龙域领主",
        "马超-幸存者",
        "鲁班七号-福禄兄弟",
        "刘邦-圣殿之光",
        "李白-范海辛",
        "梦奇-美梦成真",
        "马可波罗-激情绿茵",
        "鲁班七号-木偶奇遇记",
        "刘禅-英喵野望",
        "哪吒-三太子",
        "米莱狄-精准探案法",
        "蒙恬-秩序猎龙将",
        "露娜-绯红之刃",
        "裴擒虎-街头旋风",
        "牛魔-西部大镖客",
        "芈月-红桃皇后",
        "蒙犽-归虚梦演",
        "苏烈-爱与和平",
        "上官婉儿-修竹墨客",
        "女娲-尼罗河女神",
        "明世隐-占星师",
        "太乙真人-圆桌骑士",
        "孙膑-未来旅行",
        "沈梦溪-棒球奇才",
        "盘古-创世神祝",
        "项羽-帝国元帅",
        "王昭君-精灵公主",
        "孙策-海之征途",
        "司马懿-魇语军师",
        "杨玉环-霓裳曲",
        "小乔-万圣前夜",
        "西施-归虚梦演",
        "孙悟空-西部大镖客",
        "虞姬-加勒比小姐",
        "瑶-森",
        "雅典娜-战争女神",
        "夏侯惇-战争骑士",
        "钟馗-地府判官",
        "元歌-午夜歌剧院",
        "曜-归虚梦演",
        "杨戬-埃及法老",
        "猪八戒-年年有余",
        "钟无艳-生化警戒",
        "云中君-荷鲁斯之眼",
        "弈星-踏雪寻梅",
        "庄周-鲤鱼之梦",
        "周瑜-海军大将",
        "张良-一千零一夜",
        "诸葛亮-星航指挥官"
    };
     QString str488[20]={
        "安琪拉-玩偶对对碰",
        "白起-白色死神",
        "曹操-超能战警",
        "大乔-守护之力",
        "宫本武藏-万象初新",
        "关羽-龙腾万里",
        "后羿-阿尔法小队",
        "李白-敏锐之力",
        "刘备-万事如意",
        "露娜-哥特玫瑰",
        "苏烈-坚韧之力",
        "孙尚香-沉稳之力",
        "张飞-五福同心",
        "甄姬-花好人间",
        "诸葛亮-掌控之力"
    };
     QString str588[4]={
        "宫本武藏-未来纪元",
        "花木兰-兔女郎",
        "刘备-汉昭烈帝",
        "赵云-白执事"
    };
     QString str888[53]={
                       "阿轲-爱心护理",
                       "阿轲-节奏热浪",
                       "安琪拉心灵 骇客",
                       "白起-星夜王子",
                       "百里守约-特工魅影",
                       "不知火舞-魅语",
                       "蔡文姬-舞动绿茵",
                       "曹操-幽灵船长",
                       "程咬金-功夫厨神",
                       "程咬金-星际陆战队",
                       "达摩-大发明家",
                       "妲己-女仆咖啡",
                       "大乔-白蛇",
                       "大乔-猫狗日记",
                       "典韦-黄金武土",
                       "貂蝉-圣诞恋歌",
                       "伽罗-箭羽风息",
                       "公孙离-无限星赏官",
                       "宫本武藏-鬼剑武藏",
                       "韩信-白龙吟",
                       "韩信-街头霸王",
                       "花木兰-水晶猎龙者",
                       "橘右京-修罗",
                       "铠-曙光守护者",
                       "兰陵王-暗隐猎兽者",
                       "李白-千年之狐",
                       "李元芳-逐浪之夏",
                       "廉颇-地狱岩魂",
                       "刘邦-德古拉伯爵",
                       "刘禅-绅士熊喵",
                       "刘禅-天才门将",
                       "露娜-紫霞仙子",
                       "吕布-未日机甲",
                       "吕布-圣诞任欢",
                       "墨子-金属风暴",
                       "娜可露露-晚萤",
                       "孙膑-天使之翼",
                       "孙策-猫狗日记",
                       "孙尚香-时之恋人",
                       "孙尚香-水果甜心",
                       "武则天-东方不败",
                       "夏侯惇-乘风破浪",
                       "小乔-缤纷独角兽",
                       "小乔-青蛇",
                       "亚瑟-心灵战警",
                       "瑶-遇见神鹿",
                       "赢政-暗夜贵公子",
                       "赢政-摇滚巨星",
                       "张飞-乱世虎臣",
                       "赵云-忍●炎影",
                       "赵云-未来纪元",
                       "甄姬-冰雪圆舞曲",
                       "诸葛亮-黄金分割率"
    };
     QString strcs[20]={
                       "达摩-黄金狮子座",
                       "狄仁杰-超时空战土",
                       "貂蝉-猫影幻舞",
                       "貂蝉-仲夏夜之梦",
                       "干将莫邪-久胜战神",
                       "宫本武藏-地狱之眼",
                       "后羿-黄金射手座",
                       "花木兰-冠军飞将",
                       "刘备-时之恋人",
                       "梦奇-胖达荣荣",
                       "孙尚香-末日机甲",
                       "孙悟空-地狱火",
                       "武则天-海洋之心",
                       "虞姬-云霓雀翎"
    };
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private slots:
    void on_pushButton_clicked();
private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

mianwindow.cpp 要说的可能就是概率,我本来是想100里面随机到0-20算20%,后来发现这样根本不准,我要是商家我就亏大了,我把100换成了较大的数,这个概率数据才能算是正确的。

代码语言:javascript复制
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QTime>
#include<qdebug.h>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    int number_1=0;
    int number_2=0;
    int number_y = GameRand(77);
        for(int j =0;j<500000000;j  )
        {
        }
    ui->label_2->setText("恭喜你");
    for(int i =0; i<1000;i  )
    {
        number_1 = GameRand(1000);
        //number_1 = str.toInt();
        //288 70%
        if(number_1>=200)
        {
            number_2 = GameRand(77);
            //显示图片 显示文字
            ui->label_4->setText(str288[number_2]);
            ui->label_3->setText("获得288皮肤:");
            QString str_1 = str288[number_2];
            QString str_2 = "border-image: url(:/lib/img288/" str_1 ".jpg)";
            qDebug()<<str_2;
            ui->label->setStyleSheet(str_2);
            break;
        }
        //488 20%
        if(number_1>=90 && number_1<200)
        {
            number_2 = GameRand(13);
            ui->label_4->setText(str488[number_2]);
            ui->label_3->setText("获得488皮肤:");
            QString str_1 = str488[number_2];
            QString str_2 = "border-image: url(:/lib/img488/" str_1 ".jpg)";
            ui->label->setStyleSheet(str_2);
            qDebug()<<str_2;
            break;
        }
        //588 6%
        if(number_1>=30&&number_1<90)
        {
            number_2 = GameRand(3);
            ui->label_4->setText(str588[number_2]);
            ui->label_3->setText("获得588皮肤:");
            QString str_1 = str588[number_2];
            QString str_2 = "border-image: url(:/lib/img588/" str_1 ".jpg)";
            ui->label->setStyleSheet(str_2);
            qDebug()<<str_2;
            break;
        }
        //888 3%
        if(number_1>=5&&number_1<30)
        {
            number_2 = GameRand(52);
            ui->label_4->setText(str888[number_2]);
            ui->label_3->setText("获得888皮肤:");
            QString str_1 = str888[number_2];
            QString str_2 = "border-image: url(:/lib/img888/" str_1 ".jpg)";
            ui->label->setStyleSheet(str_2);
            qDebug()<<str_2;
            break;
        }
        //传说 1%
        if(number_1>=0&&number_1<5)
        {
            number_2 = GameRand(13);
            ui->label_4->setText(strcs[number_2]);
            ui->label_3->setText("获得传说皮肤:");
            QString str_1 = strcs[number_2];
            QString str_2 = "border-image: url(:/lib/imgcs/" str_1 ".jpg)";
            ui->label->setStyleSheet(str_2);
            qDebug()<<str_2;
            break;
        }
    }
}

int MainWindow::GameRand(int num) //生成随机数
{
    QTime time;
    time = QTime::currentTime();
    qsrand(time.msec() time.second()*1000);
    return qrand()%num 0;
}

0 人点赞