QT-坦克大战游戏

QT-坦克大战游戏

  • 一、演示效果
  • 二、关键程序
  • 三、下载链接


一、演示效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、关键程序

#include "score.h"
Score::Score(){health=30;
maxHealth=health;QLabel *label1 = new QLabel(this);label1->setFrameStyle(QFrame::Plain | QFrame::Box);label1->setStyleSheet("background-color:red;");label1->setText("Player1");label1->setAlignment(Qt::AlignTop | Qt::AlignCenter);label1->setFixedHeight(50);QFont font1= label1->font();font1.setPixelSize(20);label1->setFont(font1);label1->setGeometry(0,0,100,100 );resize(length*health/maxHealth, this->height(),1);QLabel *label2 = new QLabel(this);label2->setFrameStyle(QFrame::Plain | QFrame::Box);label2->setStyleSheet("background-color:red;");label2->setText("Player2");label2->setAlignment(Qt::AlignTop | Qt::AlignCenter);label2->setFixedHeight(50);QFont font2= label2->font();font2.setPixelSize(20);label2->setFont(font2);label2->setGeometry(SCORE_WIDTH - 100,0,100,100 );resize(length*health/maxHealth,this->height(),2);QPalette p(palette());p.setColor(QPalette::Window, QColor(255, 243, 240)); //bricks & box//p.setColor(QPalette::Window, QColor(224, 255, 224)); //forestthis->setAutoFillBackground(true);this->setPalette(p);this->setFixedHeight(50);
}void Score::paintEvent(QPaintEvent *event)
{Q_UNUSED(event);QPainter painter1(this);QPainter painter2(this);painter1.save();painter1.setBrush(Qt::blue);if(!hp1.isNull())painter1.drawRect(hp1);painter1.restore();painter2.save();painter2.setBrush(Qt::green);if(!hp2.isNull())painter2.drawRect(hp2);painter2.restore();
}void Score::slotDamage(int health,int ID){std::ofstream fout;if(ID==1){resize(length*health/maxHealth, this->height(),1);if(health<=0){std::ofstream fout;fout.open("Results.txt");fout << "Player2 WON!!!!";emit signalEndOfTheGame(2);}}else if(ID==2){resize(length*health/maxHealth,this->height(),2);if(health<=0){fout.open("Results.txt");fout << "Player1 WON!!!!";emit signalEndOfTheGame(1);}}fout.close();
}void Score::resize(int width,int height,int ID){if (width < 0) width = 0;if(ID==1){hp1 = QRectF(100, 0, width,height);update();}else if(ID==2){hp2 = QRectF(SCORE_WIDTH - 100, 0, -width,height);update();}
}

三、下载链接

https://download.csdn.net/download/u013083044/88632686?spm=1001.2014.3001.5503

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/279213.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ACL——访问控制列表

目录 1、ACL的产生背景及概述 2、ACL的应用 3、ACL的分类 4、ACL的组成 5、ACL的匹配位置 6、ACL的案例 案例1-----拒绝源IP为192.168.10.1的数据包 案例2------拒绝源IP在192.168.10.0/24整个网段的所有数据包 案例3------拒绝源IP为192.168.10.0/24所有奇数主机发送的…

C语言代码实现URL编码

在 Python&#xff0c;只需要导入 urllib.parse&#xff0c;然后使用 quote 函数即可把任意字符串进行 URL 编码 现在使用 C 语言来实现等效的代码&#xff0c;我在网上找到现成的代码&#xff0c;改代码接收命令行输入参数&#xff0c;然后进行 URL 编码并输出&#xff1a; #…

云演CTF Blog

1、啥也搞不了&#xff0c;扫目录。出来个console 2、有显示锁掉了 3、抓包&#xff0c;改返回包 改成true&#xff0c;放包 不好意思&#xff0c;不会了&#xff0c;哈哈哈哈哈哈哈哈哈 你会的话&#xff0c;请告诉我&#xff0c;大佬

使用国内镜像源安装opencv

在控制台输入命令&#xff1a; pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 验证安装&#xff1a; step 1&#xff1a; 打开终端&#xff1b;step 2&#xff1a; 输入python&#xff0c;进入Python编译环境&#xff1b;step 3&#xff1a; 粘贴…

Linux——进程中被打开的文件

C语言中有着许多对文件操作的函数&#xff0c;包括其他语言也有&#xff0c;但是从语言来了解文件有点浅显计算机的一切都离不开操作系统&#xff0c;那么文件跟操作系统也有着密切的关系&#xff0c;所以我们从系统层面来了解文件&#xff08;在进程中打开的文件&#xff09;文…

“Java 已死、前端已凉”?技术变革与编程语言前景:Java和前端的探讨

前端已死话题概论 本文讨论了近期IT圈中流传的“Java 已死、前端已凉”言论。我们审视了这些言论的真实性&#xff0c;并深入探讨了技术行业的演变和新兴技术的出现对编程语言和前端开发的影响。通过分析历史发展、当前趋势和未来展望&#xff0c;我们提供了对这些话题更深层次…

三、Spring IoC 容器和核心概念

本章概要 组件和组件管理概念 什么是组件&#xff1f;我们的期待Spring充当组件管理角色&#xff08;IoC&#xff09;组件交给Spring管理优势 Spring IoC 容器和容器实现 普通和复杂容器SpringIoC 容器介绍SpringIoC 容器具体接口和实现类SpringIoC 容器管理配置方式 Spring I…

【Proteus仿真】【51单片机】电子门铃设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使共阴数码管&#xff0c;按键、无源蜂鸣器等。 主要功能&#xff1a; 系统运行后&#xff0c;数码管默认显示第一种门铃音调&#xff0c;可通过K1键切…

OpenAI 承认 ChatGPT 最近的懒惰:由于用户体验到响应缓慢和无用的输出,调查正在进行中

文章目录 一. ChatGPT 指令遵循能力下降引发用户投诉1.1 用户抱怨回应速度慢、敷衍回答、拒绝回答和中断会话 二. OpenAI 官方确认 ChatGPT 存在问题&#xff0c;展开调查三. OpenAI 解释模型行为差异&#xff0c;回应用户质疑四. GPT-4 模型变更受人事动荡和延期影响 一. Chat…

【C++11特性篇】C++11中新增的initializer_list——初始化的小利器

前言 大家好吖&#xff0c;欢迎来到 YY 滴C11系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一.探究std::initializer_list是什么…

关于“Python”的核心知识点整理大全23

目录 ​编辑 第&#xff11;0 章 文件和异常 10.1 从文件中读取数据 10.1.1 读取整个文件 pi_digits.txt file_reader.py 10.1.2 文件路径 10.1.3 逐行读取 file_reader.py 10.1.4 创建一个包含文件各行内容的列表 10.1.5 使用文件的内容 pi_string.py 往期快速传…

解决goview栈内存溢出导致打包报错问题

最近搞低代码大屏使用goview打包时遇到问题 报错&#xff1a; vite v4.3.6 building for production... transforming (8931) node_modules\monaco-editor\esm\vs\base\common\navigator.js <--- Last few GCs ---> [24864:000001B515BA39F0] 65979 ms: Scavenge 2002.0…