#include
//屏幕尺寸常量
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
首先包含SDL.h头文件。 然后定义我们需要的窗口宽度和高度常量。
int main(int argc,char*argv[])
{
//初始化SDL子系统
if (SDL_Init(SDL_INIT_VIDEO) <0)
{
SDL_Log("can not init SDL:%s", SDL_GetError());
return -1;
}
注意主函数的形参,必须是一个整型,后跟上一个char*数组(参数分别代表命令行参数个数和命令行参数数组),不能是其他形式的main函!
在主函数中我们先调用SDL_init初始化函数,如果不先初始化 SDL,就不能调用任何 SDL 函数。暂时我们只需要SDL的视频子系统,所以我们先只将 SDL_INIT_VIDEO 标志传递给它。
当发生错误时,SDL_Init 返回 负数。当出现错误时,我们可以将具体的错误原因打印到控制台。
在SDL中有一个和printf函数功能相同的函数,即SDL_Log。然后用SDL_GetError获取错误字符串并打印出来。
//创建窗口
SDL_Window*window = SDL_CreateWindow(u8"C语言Plus",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
SCREEN_WIDTH, SCREEN_HEIGHT,
SDL_WINDOW_SHOWN);
//判断是否创建成功
if (window == NULL)
{
SDL_Log("can not create window:%s", SDL_GetError());
return -1;
}
如果SDL成功初始化,我们将使用SDL_CreateWindow创建一个窗口。
第一个参数设置窗口的标题;
接下来两个参数分别是窗口的x和y,即窗口在屏幕上的位置,我们不关心位置在那里,所以直接传SDL_WINDOWPOS_UNDEFINED即可;
接下来的两个参数分别表示窗口的宽度和高度;
最后一个参数表示窗口创建成功之后显示出来。
如果有错误,SDL_CreateWindow 返回 NULL。我们将错误打印到控制台。
//延迟5秒
SDL_Delay(5000);
//销毁窗口
SDL_DestroyWindow(window);
//清理所有初始化的子系统
SDL_Quit();
return 0;
}
最后我们让程序延迟5秒再退出,否则窗口会一闪而过;退出之前需要调用SDL_DestroyWindow手动销毁窗口和调用SDL_Quit清理所有初始化的子系统。
以下是创建成功的界面:
全部0条评论
快来发表一下你的评论吧 !