SDL入门
其实像SDL、FFMPEG、Opencv 我都是从入门到放弃,我不知道入了几次门了都,用的时候就Google,用完就忘,每次都需要重新搜索关键字。所以后面我的学习过程我都要记录一下,包括我看别人的文章我也要记录下来,有时候记得在哪里看过就是找不到然后就是想用就是不会简直是一个while(true),废话不多说,开始SDL的入门记录吧。
Hello World
配置链接库什么的我就不写了,因为无数遍重复已经死死记住了。直接上代码,我参考了bilibili的一个Up主的视频1。
#include <iostream>
#include "SDL2/include/SDL.h"
const int screen_width = 800;
const int screen_height = 600;
int main(int, char**)
{
SDL_Init(SDL_INIT_VIDEO);
SDL_Window *window = SDL_CreateWindow("YourGame",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
screen_width, screen_height,
SDL_WINDOW_SHOWN);
SDL_Surface *surface = SDL_GetWindowSurface(window);
SDL_Surface* blackground_surface = SDL_LoadBMP("Hello.bmp");
SDL_BlitSurface(blackground_surface, NULL, surface, NULL);
SDL_UpdateWindowSurface(window);
SDL_Delay(3000);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
因为SDL输出文字是需要扩展功能,SDL本身是没有设计文字的功能,所以Hello World就先输出图片吧。后面我用到字体时我再补充吧。有兴趣的可以参考:SDL显示图像和文字2
上面代码可以看出几点:
- SDL初始化和SDL退出:
SDL_Init(SDL_INIT_VIDEO);SDL_Quit(); - 创建Window和销毁窗口:
SDL_Window *window = SDL_CreateWindow("YourGame", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, screen_width, screen_height, SDL_WINDOW_SHOWN);SDL_DestroyWindow(window); - 让窗口显示图片:
SDL_Surface *surface = SDL_GetWindowSurface(window); SDL_Surface* blackground_surface = SDL_LoadBMP("Hello.bmp"); SDL_BlitSurface(blackground_surface, NULL, surface, NULL); SDL_UpdateWindowSurface(window) - 让窗口停留3秒:
SDL_Delay(3000);
各个函数参数的意义3 (在左侧搜索框输入自己要搜索的函数,入门可以跳过这段):

初始化函数SDL_Init参数的意义: (initialize the SDL library)
| Value | Description |
|---|---|
| SDL_INIT_TIMER | timer subsystem |
| SDL_INIT_AUDIO | audio su |
SDL入门指南

本文详细介绍了SDL库的基础使用,包括初始化、创建窗口、显示图片等关键步骤,并对比了SDL1.2与SDL2的不同之处,适合初学者快速入门。
最低0.47元/天 解锁文章
2632

被折叠的 条评论
为什么被折叠?



