邱 璇洛 (ゝ∀・)

邱 璇洛 (ゝ∀・)

你好哇(*゚∀゚*)~这里是邱璇洛的博客,常常用来记录一些技术文章和小日常~(σ゚∀゚)σ
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 上では何も表示されないかもしれませんが、Dock に新しいプログラムが表示されることに気付くでしょう。それが成功です。

参考資料#

SDL2 C 言語クロスプラットフォームゲーム開発基礎 陳云先生
SDL2/FrontPage

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。