当前位置: 首页 > news >正文

做公司做网站有用吗做网站就是做app

做公司做网站有用吗,做网站就是做app,郑州网站优化汉狮,nginx wordpress怎么样0 项目简介 飞机大战是我们大家所熟知的一款小游戏#xff0c;本教程就是教大家如何制作一款自己的飞机大战 首先我们看一下效果图 玩家控制一架小飞机#xff0c;然后自动发射子弹#xff0c;如果子弹打到了飞下来的敌机#xff0c;则射杀敌机#xff0c;并且有爆炸的特…0 项目简介 飞机大战是我们大家所熟知的一款小游戏本教程就是教大家如何制作一款自己的飞机大战 首先我们看一下效果图 玩家控制一架小飞机然后自动发射子弹如果子弹打到了飞下来的敌机则射杀敌机并且有爆炸的特效 接下来再说明一下案例的需求也就是我们需要实现的内容 滚动的背景地图 飞机的制作和控制 子弹的制作和射击 敌机的制作 碰撞检测 爆炸效果 音效添加 1 设置主场景 1创建工程class name为MainScene 2定义一个配置文件专门定义一些相关的参数(config.h) 3主场景目前只需要固定界面的大小和标题即可即config.h中定义以下数据 /***********************游戏数据配置***********************************/ #define GAME_WIDTH 512 // 宽度 #define GAME_HEIGHT 768 // 高度 #define GAME_TITLE 飞机大战 v1.0 // 标题 4在MainScene.h中定义初始化游戏场景的函数initScene并在mainScene.cpp实现 // 初始化游戏场景 void MainScene::initScene() {//初始化窗口大小setFixedSize(GAME_WIDTH,GAME_HEIGHT);//设置窗口标题setWindowTitle(GAME_TITLE); } 5在MainScene的构造函数中调用initScene函数。运行程序此时界面出现 2 资源导入 1资源导入见【QT】资源文件导入_复制其他项目中的文件到qt项目中_StudyWinter的博客-CSDN博客 2将qrc文件生成rcc二进制文件利用cmd打开终端定位到res.qrc的目录下输入命令 rcc -binary .\res.qrc -o plane.rcc 3将生成好的rcc文件放入到debug同级目录中一份 4注册二进制文件。在config.h中追加 #define GAME_RES_PATH ./plane.rcc // 资源路径 在main.cpp中修改代码 #include mainscene.h #include QResource #include QApplication #include config.hint main(int argc, char *argv[]) {QApplication a(argc, argv);// 注册外部的二进制资源文件注意加入头文件QResource::registerResource(GAME_RES_PATH);MainScene w;w.show();return a.exec(); }此时qrc文件已经没用了删除即可最简单的删除方式就是 .pro工程文件中删除代码 删除以下代码 RESOURCES \res.qrc 5添加图标资源。配置文件config.h中追加代码 虚拟资源路径语法如下 : 前缀名 文件路径 #define GAME_ICON :/res/app.ico // 图标路径 在mainScene.cpp的 initScene函数中追加代码 // 加载图片 setWindowIcon(QIcon(GAME_ICON)); // 加头文件 #include QIcon 运行测试 3 地图滚动 1创建地图类Map 2在Map.h中添加函数和成员属性 #ifndef MAP_H #define MAP_H #include QPixmapclass Map { public:// 构造函数Map();// 地图滚动坐标计算void mapPosition();public:// 地图图片对象QPixmap m_map1;QPixmap m_map2;// 地图Y轴坐标int m_map1_posY;int m_map2_posY;// 地图滚动幅度int m_scroll_speed; };#endif // MAP_H3在配置文件config.h中添加参数 /*************************地图信息***********************************/ #define MAP_PATH :/res/img_bg_level_3.jpg // 地图1图片路径 #define MAP_SCROLL_SPEED 2 // 地图滚动速度 4在Map.cpp中实现成员函数这里就涉及了业务逻辑 #include map.h #include config.hMap::Map() {// 加载地图对象两张图无缝衔接m_map1.load(MAP_PATH);m_map2.load(MAP_PATH);// 设置地图起始y坐标// 窗口是(0.0)点第一张图在上面所以y轴的坐标是-GAME_HEIGHTm_map1_posY -GAME_HEIGHT;m_map2_posY 0;// 设置地图滚动速度m_scroll_speed MAP_SCROLL_SPEED; }// 地图滚动坐标计算 void Map::mapPosition() {// 图片是向下移动的// 处理第一张地图滚动m_map1_posY m_scroll_speed;// 此时第一张图已经在界面中重置if (m_map1_posY 0) {m_map1_posY -GAME_HEIGHT;}// 处理第二张地图滚动m_map2_posY m_scroll_speed;if (m_map2_posY GAME_HEIGHT) {m_map2_posY 0;} }5添加定时器 关于定时器详见【QT】定时器_qt 定时器-CSDN博客 在mainScene.h中添加新的定时器对象 QTimer m_Timer; 在 config.h中添加 屏幕刷新间隔 #define GAME_RATE 10 //刷新间隔帧率 单位毫秒 在MainScene.cpp的initScene中追加代码 // 定时器设置m_timer.setInterval(GAME_RATE); 6启动定时器实现地图滚动 在MainScene.h中添加新的成员函数以及成员对象 // 启动游戏 用于启动定时器对象void playGame();// 更新坐标void updatePosition();// 绘图事件void paintEvent(QPaintEvent *event);// 地图对象Map m_map; 在MainScene.cpp中实现成员函数 // 启动游戏 用于启动定时器对象 void MainScene::playGame() {// 启动定时器m_timer.start();// 监听定时器connect(m_timer, QTimer::timeout, this, []() {// 更新游戏中元素的坐标updatePosition();// 重新绘制地图update();}); }// 更新坐标 void MainScene::updatePosition() {// 更新地图坐标m_map.mapPosition(); }// 绘图事件 void MainScene::paintEvent(QPaintEvent *event) {QPainter painter(this);//绘制地图painter.drawPixmap(0, m_map.m_map1_posY , m_map.m_map1);painter.drawPixmap(0, m_map.m_map2_posY , m_map.m_map2); } 在MainScene的构造函数中调用启动游戏函数 MainScene::MainScene(QWidget *parent): QWidget(parent) {//初始化场景initScene();// 启动游戏playGame(); }测试运行游戏实现地图滚动 4 创建英雄飞机 1创建英雄飞机类HeroPlane 2在英雄飞机中添加成员函数和属性 HeroPlane.h #ifndef HEROPLANE_H #define HEROPLANE_H #include QPixmap #include QRect #include bullet.h #include config.hclass HeroPlane { public:HeroPlane();// 发射子弹void shoot();// 设置飞机位置void setPosition(int x, int y);public:// 飞机资源对象QPixmap m_plane;// 飞机坐标int m_x;int m_y;// 飞机的矩形边框QRect m_rect; };#endif // HEROPLANE_H2在配置文件config.h中添加参数 /************************飞机配置数据***********************************/ #define HERO_PATH :/res/hero2.png // 飞机图片路径 3在heroPlane.cpp中实现函数 #include heroplane.h #include config.hHeroPlane::HeroPlane() {// 加载飞机资源m_plane.load(HERO_PATH);// 初始化飞机坐标m_x GAME_WIDTH * 0.5 - m_plane.width() * 0.5;m_y GAME_HEIGHT - m_plane.height();// 初始化矩形框m_rect.setWidth(m_plane.width());m_rect.setHeight(m_plane.height());m_rect.moveTo(m_x, m_y); }void HeroPlane::shoot() {}// 设置飞机位置 void HeroPlane::setPosition(int x, int y) {m_x x;m_y y;m_rect.moveTo(m_x, m_y); } 4创建飞机并显示。MainScene.h中追加 // 飞机对象HeroPlane m_hero; 在MainScene.cpp的paintEvent中追加代码 // 绘制英雄飞机painter.drawPixmap(m_hero.m_x, m_hero.m_y, m_hero.m_plane); 此时测试飞机已经可以显示在屏幕中了 5利用鼠标拖拽飞机。在MainScene.h中添加鼠标事件 // 鼠标移动事件void mouseMoveEvent(QMouseEvent*); 重写鼠标移动事件 // 鼠标移动事件 void MainScene::mouseMoveEvent(QMouseEvent *event) {int x event-x() - m_hero.m_rect.width() * 0.5; // 鼠标的位置 - 飞机矩形的一半int y event-y() - m_hero.m_rect.height() * 0.5;// 边界检查if (x 0) {x 0;}if (x GAME_WIDTH - m_hero.m_rect.width()) {x GAME_WIDTH - m_hero.m_rect.width();}if (y 0) {y 0;}if (y GAME_HEIGHT - m_hero.m_rect.height()) {y GAME_HEIGHT - m_hero.m_rect.height();}m_hero.setPosition(x, y); } 测试飞机可以拖拽 5 子弹制作 6 玩家发射子弹 7 敌机制作 8 碰撞检测 9 爆炸效果 10 音效添加 11 打包发布 资源来自01 飞机大战项目演示以及需要分析_哔哩哔哩_bilibili
http://www.w-s-a.com/news/736876/

相关文章:

  • 怎么评判一个网站做的好与坏专做情侣装网站
  • 网站管理助手v3历史上的今天 网站如何做
  • 网站建设与管理的就业方向网站开发前端模板
  • 对网站建设的维护深圳网络推广推荐
  • wordpress多站共享授权码wordpress数据库缓存插件
  • 建一个购物网站多少钱上海商标注册
  • 琪觅公司网站开发面点培训学校哪里有
  • 北京建设工程信息网站江苏企业网站建设
  • php电子商务网站建设wordpress新建的页面如何加xml
  • 去百度建网站外贸业务推广
  • 百度seo 站长工具网络营销课程个人总结3000字
  • 设计品牌网站wordpress商城 中文站
  • 公司网站要备案吗百度售后电话人工服务
  • 北京移动网站建设制作一个购物网站
  • 网站优化排名如何做网络开发工程师
  • 域名已有服务器也有怎么做网站pc 手机网站 微站
  • 鞍山网站设计制作网站最好的外贸网站建设
  • 百度手机模板网站新变更营业执照注册号查了发现之前有备案过网站了
  • 群晖个人网站建设建设网站主机免费版
  • 下载好了网站模板怎么开始做网站阿克苏网站建设价格
  • 有谁做彩票网站学会了vue 能搭建一个网站平台
  • 描述对于营销型网站建设很重要飘红效果更佳教育培训排行榜前十名
  • 国外网站有哪些推荐的网站按关键词显示广告图片
  • 互联网招聘网站排名手机网站系统
  • 网站与云平台区别企业网站建设有什么要求
  • wordpress福利网站源码高端网站设计培训机构
  • 网站建设找客户招标网免费
  • 东莞食品网站建设扬州市住房建设局网站
  • 网站色彩心理建设网站的主要功能有哪些
  • 营销型网站建设运营企业宣传网页设计