#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清理所有初始化的子系統。
以下是創建成功的界面:
-
函數
+關注
關注
3文章
4306瀏覽量
62431 -
char
+關注
關注
0文章
11瀏覽量
3705 -
main
+關注
關注
0文章
38瀏覽量
6140
發布評論請先 登錄
相關推薦
評論