本页目录

DustRacing2D:Qt/OpenGL 俯视角 2D 赛车游戏

DustRacing2D · juzzlin/DustRacing2D

DustRacing2D 是一款基于 Qt(C++)与 OpenGL 的俯视角 2D 赛车游戏,采用瓦片式赛道,并附带 Qt 关卡编辑器;物理由独立引擎 MiniCore 负责。支持 1–2 名人类玩家对战 11 名电脑车手,含三档难度、分屏双人、竞速/计时/对决模式及多条赛...

竞速体育 多人对战 自研引擎 C++ 碰撞检测 物理系统 游戏状态管理 地图编辑器 中级
★ Stars 341 Forks 84 License GPL-3.0 更新 2026-11-04

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
未知
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
从源码构建需准备 Qt6、OpenAL 与 Vorbis 开发库,国内可通过系统包管理器或镜像源获取;CMake 构建过程通常无需额外网络资源,但若依赖下载缓慢可配置镜像。具体依赖版本与兼容性待核验。

中文项目介绍

Dust Racing 2D(简称 Dustrac)是一款采用 Qt(C++) 与 OpenGL 编写的瓦片式俯视角 2D 赛车游戏,跨平台运行。项目自带一个基于 Qt 的关卡编辑器,方便玩家自行设计赛道;物理模拟部分则交由独立引擎 MiniCore 负责。游戏以传统俯视角呈现,包含一定数量的 3D 物体点缀,整体风格轻快,适合休闲竞速。

根据 README 描述,Dust Racing 2D 的目标是提供“永远完全免费”的赛车体验,源代码以 GNU GPLv3 协议开源。游戏内置多条赛道,并围绕赛道解锁、星级评价等机制构建了轻度的进度系统。

玩法指南

操作方式

玩家一(粉色赛车)默认使用方向键:上加速、下刹车、左转、右转。玩家二(灰色赛车)默认使用 W/S/A/D 分别对应加速、刹车、左转、右转。按键配置与游戏模式均可在设置菜单中调整。

  • ESC 或 Q:退出当前比赛或菜单。
  • P:暂停游戏。

比赛与进度

竞速类模式中始终有 12 辆赛车同场。以 TOP-6 完赛会解锁新赛道。记录时间与最佳名次会按不同的圈数分别存储。

维修站机制

随着比赛进行,轮胎磨损会令车辆越来越容易打滑。此时需要利用赛道上的维修站(黄色矩形区域),停稳后轮胎即被修复。这一机制要求玩家在速度与进站策略之间做出权衡。

自定义赛道

游戏会在 ~/DustRacingTracks/ 目录中搜索赛道文件,玩家可将自制赛道放置于此。在 Linux/Unix 系统上,搜索路径还会包含 $XDG_DATA_HOME/DustRacing2D/tracks;若未定义 $XDG_DATA_HOME,则使用 $HOME/.local/share/DustRacing2D/tracks。

核心功能

对战规模

支持 1–2 名人类玩家对抗 11 名电脑车手,单场比赛共 12 辆赛车。

难度设置

提供 Easy、Medium、Hard 三档难度。

分屏双人

支持垂直或水平方向的分屏双人游戏。

游戏模式

包含 Race(竞速)、Time Trial(计时赛)、Duel(对决)三种模式。

画面与物理

2D 图形搭配部分 3D 物体,强调平滑的游戏操作与物理表现。

赛道与进度

内置多条赛道;在比赛中进入前 6 名(TOP-6)即可解锁下一条赛道;每条赛道根据最佳名次给予星级评价。

关卡编辑器

基于 Qt 的编辑器让创建新赛道变得简单。

音效

包含引擎声与碰撞声。

维修站

轮胎会随比赛进程磨损,导致抓地力下降、滑动加剧;驶入黄色矩形维修站并停稳可修复轮胎。

技术架构分析

技术要点

  • 语言与框架:主体使用 C++ 编写,图形界面与窗口管理依赖 Qt,渲染基于 OpenGL。
  • 物理引擎:物理建模由独立引擎 MiniCore 完成,与游戏逻辑分离。
  • 关卡编辑器:编辑器同样基于 Qt,与游戏共享技术栈,便于赛道数据的创建与编辑。
  • 构建系统:采用 CMake,支持在 Linux 等平台从源码构建;README 提到可在 Qt Creator 或其他支持 CMake 的 IDE 中打开顶层 CMakeLists.txt。
  • 第三方库:项目源码中包含了 GLEW 与 GLM 库的源代码,相关许可证说明分别位于 src/game/MiniCore/Graphics/glew/glew.h 与 src/game/MiniCore/Graphics/glm/ogl-math/glm/glm.hpp。

构建与运行

README 建议从源码构建时参考 INSTALL 文档。在 Linux 上,安装 Qt6、OpenAL 与 Vorbis 开发库后,基本步骤如下:

mkdir build && cd build
cmake ..
make

也可以直接用 Qt Creator 或其他支持 CMake 的 IDE 打开顶层 CMakeLists.txt 进行构建。

补充说明

命令行选项

README 中记录了两个命令行参数:

  • --lang [lang]:强制指定语言。当前可用语言包括 fi、cs、de、it、fr、nl、tr。例如 dustrac-game --lang it。
  • --screen [index]:在多显示器且全屏模式下强制指定屏幕。例如 dustrac-game --screen 1 会在第二块显示器上启动游戏。

学习建议

对于希望学习 C++ 游戏开发的读者,Dust Racing 2D 提供了一个结合 Qt、OpenGL 与独立物理引擎的完整案例。可以从以下角度入手:

  • 观察游戏逻辑与 MiniCore 物理引擎的分离方式,理解模块化设计。
  • 研究基于瓦片的赛道数据结构,以及关卡编辑器如何生成与读取赛道文件。
  • 参考 CMake 构建配置与第三方库集成方式,学习跨平台 C++ 项目的组织。
  • 通过命令行参数与设置菜单的实现,了解 Qt 应用中的配置管理。

由于项目使用 GPLv3 许可证,若基于其代码进行二次开发或分发,需遵循相应的开源义务。

开源许可证与版权说明

许可证标识:GPL-3.0。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目