IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 野路子玩Qt,第二十二集,打造自己的游戏库 -> 正文阅读

[C++知识库]野路子玩Qt,第二十二集,打造自己的游戏库

昨天讲了Qt如何检测游戏手柄,今天我们就模仿“小鸡模拟器”,打造自己的游戏库,

首先安装“小鸡模拟器”,下载自己喜欢的FC游戏,

1.俄罗斯方块
2.魂斗罗
3.坦克大战

保证游戏运行后,我们开始编写自己的代码:

#include <QPixmap>
#include <QDebug>
//#include <TlHelp32.h>
//#include <windef.h>
#include <QGamepad>
#include <QProcess>
#include <QGamepadManager>
//class QGamepad;

#pragma comment(lib,"user32.lib")
/
界面ui:

listWidget,添加
1.俄罗斯方块
2.魂斗罗
3.坦克大战
设置属性:currentRow 为0

添加,label_2 
/
添加资源文件:
/new/prefix1/res/1.png
/new/prefix1/res/2.jpeg
/new/prefix1/res/3.jpeg
/
h文件
public:
	QProcess *process;//定义进程指针

private slots:
	void stateChanged(QProcess::ProcessState state);//检测进程状态


cpp文件

process = new QProcess();//创建进程
//进程状态监控
connect(process,SIGNAL(stateChanged(QProcess::ProcessState)),SLOT(stateChanged(QProcess::ProcessState)));

//连接设备
QGamepad *m_gamepad = new QGamepad(0, this);
connect(m_gamepad, &QGamepad::buttonStartChanged, this, [=](bool pressed){
   qDebug() << "Button Start" << pressed;
                if(pressed==true)
                {
                    if(ui->listWidget->currentRow()==0)
                        process->start(tr("D:\\Program Files (x86)\\xiaoji\\Emulator\\FC\\fceux\\fceux.exe"),QStringList("H:\\Games\\FC\\7100638\\7100638.zip"));
                      //process->startDetached(tr("D:\\Program Files (x86)\\xiaoji\\Emulator\\FC\\fceux\\fceux1.exe"),QStringList("H:\\Games\\FC\\7100060\\7100060.zip"));
	if(ui->listWidget->currentRow()==1)
                        process->start(tr("D:\\Program Files (x86)\\xiaoji\\Emulator\\FC\\fceux\\fceux.exe"),QStringList("H:\\Games\\FC\\7100060\\7100060.zip"));
	if(ui->listWidget->currentRow()==2)
                        process->start(tr("D:\\Program Files (x86)\\xiaoji\\Emulator\\FC\\fceux\\fceux.exe"),QStringList("H:\\Games\\FC\\7000203\\7000203.zip"));
                }
            });
connect(m_gamepad, &QGamepad::buttonUpChanged, this, [=](bool pressed){
                qDebug() << "buttonUp" << pressed;
                qDebug() << ui->listWidget->currentRow();
                if(pressed==true)
                ui->listWidget->setCurrentRow(ui->listWidget->currentRow()-1);
            });
            connect(m_gamepad, &QGamepad::buttonDownChanged, this, [=](bool pressed){
                qDebug() << "buttonDown" << pressed;
                qDebug() << ui->listWidget->currentRow();
                if(pressed==true)
                ui->listWidget->setCurrentRow(ui->listWidget->currentRow()+1);

            });



void MainWindow::on_listWidget_currentRowChanged(int currentRow)
{
        QPixmap img;
        if(currentRow==0)
            img.load(":/new/prefix1/res/1.png");
        if(currentRow==1)
            img.load(":/new/prefix1/res/2.jpeg");
        if(currentRow==2)
            img.load(":/new/prefix1/res/3.jpeg");
        ui->label_2->clear();
        ui->label_2->setPixmap(img);
}

void MainWindow::stateChanged(QProcess::ProcessState state)
{
    qDebug()<<"show state:";
        switch(state)
        {
         case QProcess::NotRunning:
            qDebug()<<"Not Running";
            break;
        case QProcess::Starting:
            qDebug()<<"Starting";
            break;
        case QProcess::Running:
            qDebug()<<"Running";
            break;
        default:
            qDebug()<<"otherState";
            break;
        }
}



  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:33:09  更:2022-03-13 21:33:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:21:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码