C++ 目前还没有一个标准的 C++ 依赖包管理器,传统上都是手动去下载源码编译(经典的例如 make
),或者直接下载预编译好的库文件(例如没有开源的)和头文件。之后在项目里配置对应的头文件路径和库路径。这个过程非常繁琐,而且枯燥。对于 Windows 上的用户,其实可以考虑使用 NuGet 安装所需要的依赖。NuGet 会自动下载依赖并配置好,省去很多繁琐的过程。
什么是 NuGet
简单来讲,它是一个包管理的平台。类似,Python 的 Pip、JavaScript 的 npm。
创建一个项目
- Visual Studio 2022
- 平台工具集:v143
NuGet
在 【工具】 中可以打开 NuGet。
引入 SDL2 库
搜索 SDL 并添加到项目中。
现在 SDL 库就引入到项目中了,就是这么简单。可以直接引用头文件使用 SDL 库。接下来,尝试使用一下 SDL。
Game 基础框架
关于这部分内容,推荐参考:Xcode与C++之游戏开发:创建环境
实现一个基础的游戏框架:
// Game.h
#pragma once
#include <SDL.h>
// Game class
class Game
{
public:
Game();
// 初始化游戏
bool Initialize();
// 运行游戏循环直到游戏结束
void RunLoop();
// 关闭游戏
void Shutdown();
private:
// 处理进程输入
void ProcessInput();
// 更新游戏
void UpdateGame();
// 生成输出
void GenerateOutput();
// 通过 SDL 创建窗体
SDL_Window* mWindow;
// 继续运行
bool mIsRunning;
};
对应的具体实现:
// Game.cpp
#include "Game.h"
Game::Game()
:mWindow(nullptr)
, mIsRunnin