【SDL游戏编程入门第一卷】配置SDL环境
一、前言
这段时间正好使用 SDL,所以打算开一个新的系列,作为经验分享
—— SDL 游戏编程入门。
这也是 AnnihilateSword 在此站的第一个系列,文中可能有许多不足,还请多多包涵,如能斧正,那再好不过。
1. 使用工具:
- 语言:C++
- 编辑器:Visual Studio 2019
二、下载环境资源文件
这里因为使用的是 VS2019,所以下载的是 SDL2-devel-2.26.1-VC.zip
解压后可以看到有 include 和 lib 文件夹,配置非常简单
三、创建项目
打开 VS2019,创建一个控制台空项目,我这里使用的是 64位
在解决方案目录下创建 Dependencies 文件夹用来存放 include 和 lib,将下载好的两个文件夹复制进去(include、lib)
项目设置如下
三、测试(HelloSDL)
示例代码:
/* 此源代码版权归 AnnihilateSword (2022-*)所有,未经书面许可不得转载。*/
// 使用 SDL 和 iostream
#include <SDL.h>
#include <iostream>
// 链接库
#pragma comment(lib, "SDL2.lib")
#pragma comment(lib, "SDL2main.lib")
// 屏幕尺寸常量
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
int main(int argc, char* argv[]) // 必须要填写此参数,不然会出现链接错误
{
// 定义 SDL 窗口
SDL_Window* window = nullptr;
// 初始化 SDL
if (SDL_Init(SDL_INIT_VIDEO) < 0)
{
std::cout << "[Error]: SDL could not initialize! SDL_Error: " << SDL_GetError() << std::endl;
}
else
{
// 创建窗口
SDL_Window* window = SDL_CreateWindow("HelloSDL", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
if (window == nullptr)
{
std::cout << "[Error]: Window could not be created! SDL_Error: " << SDL_GetError() << std::endl;
}
else
{
// 获取窗口所包含的表面
SDL_Surface* screenSurface = SDL_GetWindowSurface(window);
// 将表面填充为白色
SDL_FillRect(screenSurface, nullptr, SDL_MapRGB(screenSurface->format, 0xFF, 0xFF, 0xFF));
// 更新表面
SDL_UpdateWindowSurface(window);
// 窗口循环
SDL_Event e;
bool quit = false;
while (quit == false)
{
while (SDL_PollEvent(&e))
{
if (e.type == SDL_QUIT)
quit = true;
}
}
}
}
// 销毁窗口
SDL_DestroyWindow(window);
// 退出 SDL
SDL_Quit();
return 0;
}
注意需要将 SDL2.dll
放置可执行文件 (exe) 当前目录,或者项目当前目录,不然会报错找不到 DLL
1. 运行结果:
本节内容就到这里了,下卷会继续分享 SDL 的基本使用
The End.