Qt飞机大战【手把手教程】

本文较长,建议收藏,可以观看本文配套视频教程【C++干大事系列之游戏篇:Qt飞机大战

 


1、项目简介

飞机大战是我们大家所熟知的一款小游戏,本教程就是教大家如何制作一款自己的飞机大战。

首先我们看一下效果图

飞机大战效果图

玩家控制一架小飞机,然后自动发射子弹,如果子弹打到了飞下来的敌机,则射杀敌机,并且有爆炸的特效。接下来再说明一下案例的需求,也就是我们需要实现的内容。

·滚动的背景地图

·飞机的制作和控制

·子弹的制作和射击

·敌机的制作

·碰撞检测

·爆炸效果

·音效添加

2、创建项目

创建项目步骤如下:

·打开Qt

·跟着向导创建项目
基类选择 QWidget空窗口

第一个场景为主场景 MainScene

不带UI界面

2.1 打开Qt

找到你安装的Qt Creator,打开它。

如果安装时,没有选择在桌面上建立快捷方式,那么你的Qt软件位置如下

C:\qt\Qt5.x.x\Tools\QtCreator\bin

在这个路径下找到 qtcreator.exe 双击打开即可

2.2 按照向导创建项目

2.2.1 新建项目

点击菜单 中的文件 -> 新建文件或项目 或者 在首页面中点击New Project

飞机大战创建项目

 

2.2.2 选择模板

模板选择 Application -> Qt Widget Application

选择模板


2.2.3 项目名称和位置

给项目起个名称以及选中项目要保存的地方

选择项目位置

这一步选择后在Kits 构建套件中直接点击下一步即可


2.2.4 类信息

基类选择 QWidget

类名也就是我们第一个窗口场景的名称,这里我起名为 MainScene 代表游戏中的主场景

取消创建界面中的内容

选择QWidget



2.2.5 完成创建

在汇总页面中点击完成,我们就迈开了项目的第一步!

完成项目创建


3、设置主场景

主场景设置的步骤如下:

·添加配置文件,保存游戏中所有配置数据

·初始化主场景窗口大小、标题

3.1 配置文件添加

创建新的头文件为 config.h 主要记录程序中所有的配置数据,方便后期修改

添加窗口宽度、高度的配置信息,依据背景图大小进行设置

/********** 游戏配置数据 **********/

define GAME_WIDTH 512 //宽度

define GAME_HEIGHT 768 //高度

define GAME_TITLE "飞机大战 v1.0" //标题

 

3.2 主场景基本设置

在mainScene.h中添加新的成员函数initScene 用来初始化游戏场景

void initScene();

在mainScene.cpp中实现如下代码

void MainScene::initScene()
{
    //初始化窗口大小
    setFixedSize(GAMEWIDTH,GAMEHEIGHT);

    //设置窗口标题

    setWindowTitle(GAME_TITLE);

}

 

在构造函数MainScene中调用该函数 initScene

MainScene::MainScene(QWidget *parent)
    : QWidget(parent)
{
    //初始化场景
    initScene();
}

 

测试运行效果如图:

运行测试效果

 


4、资源导入

在主场景中其实还有一个配置项没有实现,也就是窗口左上角的那个图标资源。那么接下来我们将游戏中的资源进行导入并且设置游戏图标。

资源导入步骤

·生成qrc文件

·项目同级目录下创建res文件夹并将资源粘贴过来

·编辑qrc,加入前缀和文件

·利用qrc生成二进制文件 rcc

·rcc文件放入到debug同级目录下

·注册二进制文件

·添加图标资源

4.1 qrc文件生成

右键项目,点击添加新文件

添加新文件


选择Qt -> Qt Resource File

选择Qt

资源文件起名 如:res

源文件起名


生成res.qrc文件

 

生成res.qrc文件



4.2 创建res文件夹

项目的同级目录下创建文件夹res,并将准备好的资源粘贴进去

创建res文件夹

 

4.3 编辑qrc文件

右键qrc文件,选中Open in Editor

20200116174008367.jpguploading.4e448015.gif转存失败重新上传取消右键qrc文件


添加前缀为 '' \ ''

添加前缀


添加文件 将res下所有文件选中即可

添加res下文件

 

4.4 qrc生成 rcc二进制文件

由于资源过大,会提示错误:

错误提示


这个错误也就是“编译器的堆空间不足”。

由于资源文件qrc过大,超出分配的内存范围

因此我们需要利用二进制资源,而生成二进制资源就需要我们刚刚的qrc文件

利用cmd打开终端,定位到res.qrc的目录下,输入命令

rcc -binary .\res.qrc -o plane.rcc

输入命令

4.5 复制rcc文件

将生成好的rcc文件,放入到debug同级目录中一份

复制rcc文件

 

4.6 注册二进制文件

在config.h中追加配置数据

#define GAMERESPATH "./plane.rcc"     //rcc文件路径

在main.cpp中修改代码

#include "mainscene.h"

#include

#include

#include "config.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值