Linux + Mono + SDL2 + C# 開発環境構築手順

了解しました!以下は、Linux環境で Mono + SDL2 + C# を使って開発環境を整える手順を解説するブログのドラフトです。
ご希望の構成に沿って、各ステップを詳しく解説します。


Linux + Mono + SDL2 + C# 開発環境構築手順

本記事では、Linux環境でMonoフレームワークを使って、C# + SDL2で簡単なGUIアプリを作るためのセットアップ手順を紹介します。
SDL2には画像処理、フォント描画、音声、ネットワークなど多彩な機能がありますが、今回はそれらも含めて一通りインストール&動作確認します。


目次

1. Mono のインストール

Mono は C# を Linux 上で実行するためのフレームワークです。以下のコマンドでインストールします。

sudo apt update
sudo apt install mono-complete

インストール後、バージョンを確認しておきましょう。

mono --version

2. SDL2 ランタイムと開発用パッケージのインストール

SDL2 は C 言語で書かれたマルチメディアライブラリで、C# からはラッパー経由で使用します。

sudo apt install libsdl2-2.0-0 libsdl2-dev
sudo apt install libsdl2-image-2.0-0 libsdl2-image-dev
sudo apt install libsdl2-ttf-2.0-0 libsdl2-ttf-dev
sudo apt install libsdl2-mixer-2.0-0 libsdl2-mixer-dev
sudo apt install libsdl2-net-2.0-0 libsdl2-net-dev

3. SDL2-CS(C# バインディング)の導入

C# から SDL2 を使うには、C# 向けのラッパー「SDL2-CS」を使います。

3.1 GitからSDL2-CSをクローン

git clone https://github.com/flibitijibibo/SDL2-CS.git
cd SDL2-CS

3.2 DLLの作成

mcs -target:library -out:SDL2-CS.dll SDL2/*.cs

この操作で、SDL2-CS.dll が生成されます。


4. テストプログラムの作成

簡単なウィンドウ表示テストを行ってみましょう。

4.1 Program.cs

using System;

class Program
{
    static void Main(string[] args)
    {
        Window window = new Window();
        window.Run();
    }
}

4.2 Window.cs

using SDL2;
using System;
using System.Runtime.InteropServices;

class Window
{
    const int WIDTH = 640;
    const int HEIGHT = 480;
    const string TITLE = "SDL2 C# Window";

    public void Run()
    {
        if (SDL.SDL_Init(SDL.SDL_INIT_VIDEO) < 0)
        {
            Console.WriteLine("SDL could not initialize! SDL_Error: " + SDL.SDL_GetError());
            return;
        }

        IntPtr window = SDL.SDL_CreateWindow(
            TITLE,
            SDL.SDL_WINDOWPOS_CENTERED,
            SDL.SDL_WINDOWPOS_CENTERED,
            WIDTH,
            HEIGHT,
            SDL.SDL_WindowFlags.SDL_WINDOW_SHOWN
        );

        if (window == IntPtr.Zero)
        {
            Console.WriteLine("Window could not be created! SDL_Error: " + SDL.SDL_GetError());
            return;
        }

        IntPtr renderer = SDL.SDL_CreateRenderer(window, -1, 0);
        SDL.SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); // 白背景
        SDL.SDL_RenderClear(renderer);
        SDL.SDL_RenderPresent(renderer);

        SDL.SDL_Delay(3000);

        SDL.SDL_DestroyRenderer(renderer);
        SDL.SDL_DestroyWindow(window);
        SDL.SDL_Quit();
    }
}

5. Makefile の作成

TARGET = main.exe
SOURCES = Program.cs Window.cs
DLLS = -r:SDL2-CS.dll
FLAGS = -unsafe

all:
	mcs $(SOURCES) $(DLLS) $(FLAGS) -out:$(TARGET)

run:
	mono $(TARGET)

clean:
	rm -f $(TARGET)

実行方法

  1. make でビルド
  2. make run で実行
  3. 白いウィンドウが3秒間表示されれば成功!

まとめ

これで Linux + Mono + SDL2 + C# を用いたアプリ開発の準備が整いました!
今後は、画像表示や音声出力、フォント描画などの機能を追加していくと、ゲームやGUIツールの開発も可能になります。


必要があれば、「画像表示」や「キーイベント処理」など次のチュートリアル記事も作れます!続きが欲しいときは教えてくださいね。

よかったらシェアしてね!
目次