QT实现飞机大战-2

这篇具有很好参考价值的文章主要介绍了QT实现飞机大战-2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

战机发射子弹、敌机出现、爆炸效果、音效的添加

1.制作子弹类

  • 创建子弹文件和类
  • 添加子弹类中的成员函数和成员属性
  • 实现成员函数
  • 测试子弹
1.1创建子弹文件夹和类

创建Bullet类以及生成对应的文件
创建好后生成bullet.h 和 bullet.cpp两个文件
QT实现飞机大战-2,C++,qt,开发语言,入门,C++

1.2添加子弹的成员函数和成员属性

战机发射子弹,子弹发射后会向上移动,移动到地图外子弹消失。
因此子弹的属性和:子弹图片、子弹坐标、子弹移动速度、子弹是否飞出地图外、子弹的矩形边框(设定矩形边框后,后续实现击败敌机时可以通过矩形边框是否相交来判断)、子弹移动的函数

在config.h中追加子弹配置信息

/********** 子弹配置数据 **********/

#define BULLET_PATH ":/res/bullet_11.png"   //子弹图片路径
#define BULLET_SPEED 5  //子弹移动速度

QT实现飞机大战-2,C++,qt,开发语言,入门,C++

在Bullet.h中添加成员属性和成员函数
#ifndef BULLET_H
#define BULLET_H
#include "config.h"
#include <QPixmap>

class Bullet
{
public:
    Bullet();

    //更新子弹坐标
    void updatePosition();

public:
    //子弹资源对象
    QPixmap m_Bullet;
    //子弹坐标
    int m_X;
    int m_Y;
    //子弹移动速度
    int m_Speed;
    //子弹是否闲置
    bool m_Free;
    //子弹的矩形边框(用于碰撞检测)
    QRect m_Rect;
};

#endif // BULLET_H

QT实现飞机大战-2,C++,qt,开发语言,入门,C++

子弹类成员函数实现
#include "bullet.h"

Bullet::Bullet()
{
    //加载子弹资源
    m_Bullet.load(BULLET_PATH);
    //子弹坐标 初始坐标可随意设置,后期会重置
    m_X = GAME_WIDTH*0.5 - m_Bullet.width()*0.5;
    m_Y = GAME_HEIGHT;
    //子弹状态
    m_Free = true;
    //子弹速度
    m_Speed = BULLET_SPEED;
    //子弹矩形框
    m_Rect.setWidth(m_Bullet.width());
    m_Rect.setHeight(m_Bullet.height());
    m_Rect.moveTo(m_X,m_Y);
}
void Bullet::updatePosition()
{
    //如果子弹是空闲状态,不需要坐标计算 玩家飞机可以控制子弹的空闲状态为false
    if(m_Free) return;
    //子弹向上移动
    m_Y  -= m_Speed;
    m_Rect.moveTo(m_X,m_Y);
    if(m_Y <= -m_Rect.height())
    {
        m_Free = true;
    }
}

QT实现飞机大战-2,C++,qt,开发语言,入门,C++

测试子弹是否能正常发出

子弹本身应该由飞机发射,测试阶段我们写一段辅助代码,看看效果即可
测试过后,这些代码可以删除掉
在MainScene.h中添加测试代码

    //测试子弹代码
    Bullet temp_bullet;

在MainScene.cpp中的updatePosition里添加测试代码

    //测试子弹代码
    temp_bullet.m_Free = false;
    temp_bullet.updatePosition();

在MainScene.cpp中的paintEvent里添加测试代码

  //测试子弹代码
    painter.drawPixmap(temp_bullet.m_X,temp_bullet.m_Y,temp_bullet.m_Bullet);

运行程序,此时会有一发子弹从屏幕中射出
文章来源地址https://www.toymoban.com/news/detail-814456.html

到了这里,关于QT实现飞机大战-2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用Python开发一个飞机大战游戏(附源码教程)

    点击蓝字 关注我们 Python是一门非常简单的语言,快速入门之后可以做很多事情!比如爬虫啊,数据分析啊,自动化运维啊,机器学习,量化分析等等!但是入门到进阶的过程有时会非常痛苦,如果有一些好玩有趣的例子就好了。 比如通过游戏来学编程是一个非常好的途径,

    2024年04月14日
    浏览(41)
  • python | 基础学习(六)pygame游戏开发:飞机大战

    pygame 模块,转为电子游戏设计 $ sudo pip3 install pygame windows: pip install pygame (1)新建项目 飞机大战 (2)新建文件 pygame.py (3)建立游戏窗口: ①pygame的初始化和退出 pygame.init() :导入并初始化所有pygame模块,使用其他模块之前,必须先调用init方法。 pygame.quit() :卸载所有

    2024年02月08日
    浏览(48)
  • python实现飞机大战

    2024年03月24日
    浏览(41)
  • Android Studio实现飞机大战

    通过自定义View实现Android飞机大战小游戏,游戏玩法很简单,可以锻炼玩家的反应能力。开启背景音乐进行新的游戏,控制飞机移动来消灭敌机获取更多的分数,在移动过程中避免与敌机发生碰撞。主界面可以查看自己的历史战绩和游戏规则,详细规则如下: 我们定义了 Sp

    2024年02月16日
    浏览(28)
  • Python利用pygame实现飞机大战游戏

    文章目录: 一:运行效果 1.演示 2.思路和功能 二:代码 文件架构 Demo 必备知识:python图形化编程pygame游戏模块 效果图 ◕‿◕✌✌✌ Python利用pygame实现飞机大战游戏运行演示 参考:【Python游戏】1小时开发飞机大战游戏-Pygame版本(1小时40分钟) 博主提取资源: 提取

    2024年04月09日
    浏览(65)
  • CocosCreator实战篇 |CocosCreator实现《飞机大战》

    📢博客主页:肩匣与橘 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 肩匣与橘 编写,首发于 CSDN 🙉 📢生活依旧是美好而又温柔的,你也是✨ 《飞机大战》 📝前言 一、素材准备 二、场景搭建 ①背景 ②主角战斗机 ③敌方战机生成点 ④分数UI ⑤副摄像

    2023年04月15日
    浏览(35)
  • Python开发小游戏:写一个飞机大战只需要500行代码!

    ‘’’ :param background_image_path: 背景图片的路径地址 :param size: 游戏窗口的大小 :param title: 游戏窗口的标题 :param font_name: 指定字体 :param font_size: 指定字体大小 :param speed: 背景图滚动整个窗口一次所用时间,单位为ms ‘’’ self.size = size self.screen = pygame.display.set_mode(size) self.tit

    2024年04月11日
    浏览(40)
  • python毕设分享 飞机大战设计与实现 (源码)

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 **飞机大战小游戏设计与实现 ** 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:3分 项目获取: https://gitee.com/sinonfin

    2024年02月03日
    浏览(38)
  • 基于Python的飞机大战游戏的设计与实现

    收藏关注不迷路    飞机大战是一种非常传统的电脑游戏,也是非常经典的游戏之一,经常可以在电脑,手机,以及各类便携式游戏机中见到。传统的老式飞行游戏以平面,灰白画面为主。而现在,随着计算机性能的飞速发展,我们目前可以在计算机上见到种类更加繁多的

    2024年02月04日
    浏览(34)
  • python小游戏毕设 飞机大战设计与实现

    🔥 Hi,各位同学好呀,这里是L学长! 🥇今天向大家分享一个今年(2022)最新完成的毕业设计项目作品 飞机大战小游戏设计与实现 🥇 学长根据实现的难度和等级对项目进行评分(最低0分,满分5分) 难度系数:3分 工作量:3分 创新点:3分 利用Python制作的一个简易版类\\\"飞机大

    2024年02月10日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包