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

使用C++编写的一款射击五彩敌人的游戏

使用C++编写的一款射击五彩敌人的游戏

背景
从油管上面up主TheCherno的一期视频My Favourite C++ Project I’ve EVER REVIEWED? // Code Review看到一款使用C++编写的一款射击五彩敌人的游戏,github源代码地址为:https://github.com/FearlessOne07/Spectrum

Spectrum

一款射击五彩敌人的游戏

操作

WASD - 移动

鼠标左键 - 开枪

Tab - 打开商店升级自己!

F11 - 全屏(Linux 系统无法使用)

Esc - 暂停

游戏玩法

射击敌人,收集光能,在商店升级,如此反复

图片

1.png

2.png
3.png
4.png
5.png

构建

  • 运行 git clone https://github.com/FearlessOne07/Spectrum.git --recursive
  • 确保已安装 cmake 和所需的生成器
  • 运行 cmake -S . -B buildbuild 目录中生成构建文件
  • 运行 cmake --build build 构建可执行文件和库。
  • 可执行文件将位于 bin 目录中

鸣谢

使用 raylib 制作。

“heart-ui”和“power-ups”纹理是这些assets 的修改版本

在Windows11中使用cmake和VS2022编译运行

编译Spectrum源代码

按照如下步骤
Building
打开Windows cmd终端依次执行

    1. Run git clone https://github.com/FearlessOne07/Spectrum.git --recursive
    1. Make sure cmake and your desired generator are installed
    1. Run cmake -S . -B build to generate build files in the build directory
    1. Run cmake --build build to build the executable and libraries.
    1. Executable will be in the bin directory
      当然前提是得安装VS2022cmake这两个工具
      运行完成后,会在源代码根目录bulid子目录下生成对应的Visual Studio工程文件,然后就可以直接鼠标双击Spectrum.sln使用VS2022直接打开·Spectrum`项目了。如下图所示:
      Spectrum项目
      使用VS2022打开Spectrum项目

与此同时会在源代码根目录下的bin/Debug或者bin/Release目录下生成对应的Spectrum.exe可执行程序,如下图所示:
bin/Debug/Spectrum.exe
bin/Release/Spectrum.exe

2.运行Spectrum.exe可执行程序

Windows11中生成Spectrum.exe可执行程序之后,我们鼠标双击Spectrum.exe可执行程序会因为无法加载图片资源文件而崩溃,如下图所示:
运行Spectrum.exe报错
如果我们直接通过VS2022打开Spectrum项目,然后Ctrl+F5是可以正常运行的,如下图所示:
VS2022打开并运行Spectrum项目
从上图可以看到游戏界面比较简单,主要有左上角的标题栏和中间的PLAYEXIT菜单项,用户通过鼠标左键单击PLAY按钮即可开始游戏,鼠标左键单击EXIT按钮即可退出游戏。

游戏界面1
游戏界面2
游戏资源目录如下图所示:
游戏资源目录
我们可以把assets目录下所有的文件夹拷贝到bin/Debug/Spectrum.exe或者bin/Release/Spectrum.exe所在的目录下,如下图所示:
拷贝资源文件到可执行文件所在目录下
然后再次鼠标双击执行Spectrum.exe即可正常运行,如下图所示:
鼠标再次双击运行Spectrum.exe

参考资料

  • My Favourite C++ Project I’ve EVER REVIEWED? // Code Review
  • https://github.com/FearlessOne07/Spectrum
    一款使用C++编写的一款射击五彩敌人的游戏
http://www.dtcms.com/a/393723.html

相关文章:

  • 【LeetCode hot100|Week3】数组,矩阵
  • linux-环境配置-指令-记录
  • 自学嵌入式第四十四天:汇编
  • RTX 4090助力深度学习:从PyTorch到生产环境的完整实践指南——模型部署与性能优化
  • PythonOCC 在二维平面上实现圆角(Fillet)
  • Unity 性能优化 之 实战场景简化(LOD策略 | 遮挡剔除 | 光影剔除 | 渲染流程的精简与优化 | Terrain地形优化 | 主光源级联阴影优化)
  • [GXYCTF2019]禁止套娃1
  • 【论文阅读】-《Triangle Attack: A Query-efficient Decision-based Adversarial Attack》
  • 云微短剧小程序系统开发:赋能短剧生态,打造全链路数字化解决方案
  • 《从延迟300ms到80ms:GitHub Copilot X+Snyk重构手游跨服社交系统实录》
  • 力扣2132. 用邮票贴满网格图
  • Halcon学习--视觉深度学习
  • LeetCode:40.二叉树的直径
  • dplyr 是 R 语言中一个革命性的数据操作包,它的名字是 “data plier“ 的缩写,意为“数据折叠器“或“数据操作器“
  • 使用Node.js和PostgreSQL构建数据库应用
  • 设计模式(C++)详解—享元模式(1)
  • C++线程池学习 Day08
  • VALUER倾角传感器坐标系的选择
  • 解决 win+R 运行处以及文件资源管理器处无法使用 wt、wsl 命令打开终端
  • R语言 生物分析 CEL 文件是 **Affymetrix 基因芯片的原始扫描文件**,全称 **Cell Intensity File**。
  • Apache Spark Shuffle 文件丢失问题排查与解决方案实践指南
  • xtuoj 0x05-C 项链
  • STM32F429I-DISC1【读取板载运动传感器数据】
  • 【Kafka面试精讲 Day 21】Kafka Connect数据集成
  • 2025数据资产管理平台深度分析:技术特性、与选型逻辑
  • RabbitMQ Java 解决消息丢失、重复和积压问题
  • 深入解析 Spring AI 系列:解析请求参数处理
  • OpenLayers地图交互 -- 章节五:捕捉交互详解
  • 阿瓦隆1566HA-448T矿机深度解析:性能、效率与冷却技术
  • 平替confluence,推荐一款国产开源免费的知识管理工具 - sward