邱 璇洛 (ゝ∀・)

邱 璇洛 (ゝ∀・)

你好哇(*゚∀゚*)~这里是邱璇洛的博客,常常用来记录一些技术文章和小日常~(σ゚∀゚)σ
twitter
tg_channel

SDL2學習筆記 - Hello SDL2

起步#

環境:MacOS
本文開發 SDL 使用的語言是 C 語言(別問,問就是不喜歡 C++)
本文更趨向是技術記錄,不是新手教程,不過我覺得學過一些 C 語言的看起來沒啥問題

下載 SDL,在 MacOS 是很簡單的,因為我懶得用 Xcode,直接用 brew 下載,VScode 開發,美滋滋。
brew install sdl2
下載完之後還需要配置一下 CMake,在 MacOS 裡 CMake 直接引用是沒辦法找到 SDL 庫,還需要連接下頭文件位置。
使用 brew info 查找庫位置
brew info sdl2

然後配置一下 CMake 就可以直接引用了

cmake_minimum_required(VERSION 3.23.2)
project(HelloSDL2 C)

set(CMAKE_C_STANDARD 11)

set(MY_LIBRARY_DIR /usr/local/Cellar)

set(SDL_DIR ${MY_LIBRARY_DIR}/sdl2/2.26.0)
include_directories(${SDL_DIR}/include/SDL2)
link_directories(${SDL_DIR}/lib/)

link_libraries(SDL2)

add_executable(HelloSDL2 main.c)

好啦,之後就可以開始真正寫代碼啦!

你好,SDL#

創建一個窗口,在 SDL 裡十分簡單
首先創建一個窗口

#include <SDL.h>

int main() {
    if (SDL_Init(SDL_INIT_VIDEO)) {
        SDL_Log("Can not init video, %s", SDL_GetError());
        return 1;
    }
    ...
    return 0;
}

if 是為了防止出問題了你還不知道咋回事
然後就是 SDL 的窗口配置

...
    SDL_Window * win = SDL_CreateWindow(
    	//title
        "HelloWorld",
        SDL_WINDOWPOS_CENTERED,
        SDL_WINDOWPOS_CENTERED,
        //窗口大小
        400,300,
        SDL_WINDOW_SHOWN
    );
....

最後別忘了釋放窗口

...
SDL_DestroyWindow(win);
...

完整代碼

#include <SDL.h>

int main() {
    if (SDL_Init(SDL_INIT_VIDEO)) {
        SDL_Log("Can not init video, %s", SDL_GetError());
        return 1;
    }

    SDL_Window * win = SDL_CreateWindow(
        "HelloWorld",
        SDL_WINDOWPOS_CENTERED,
        SDL_WINDOWPOS_CENTERED,
        400,300,
        SDL_WINDOW_SHOWN
    );

    if (win==NULL) {
        SDL_Log("Can not create window, %s", SDL_GetError());
        return 1;
    }

    SDL_Delay(3000);

    SDL_DestroyWindow(win);
    return 0;
}

沒問題的話,你會看到一個 400*300 的黑框框,在 3 秒後自動關閉,在 mac 上還可能啥也沒出現,但是你會發現程式塢裡出現了一個新程式,也是成功了。

參考資料#

SDL2 C 語言跨平台遊戲開發基礎 陳雲老師
SDL2/FrontPage

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。