UbuntuでもD言語からSDLを使ってみる
ゲームなどを作るときによく使われる画面描画ライブラリの一つに「SDL」というのがあります。
D言語からSDLを使う場合は、Windowsの場合の方法は結構見つかりますが、Linuxだとあまり見つかりません。
なので適当に書いてみました。
D言語用ライブラリの準備
「http://shinh.skr.jp/d/porting.html」の「SDL」をクリックしてダウンロードし、ダウンロードした圧縮ファイルを解凍して出てきた「SDL」ディレクトリを、
適当に作っておいた作業用ディレクトリの中に入れました。
しかし、D言語用ライブラリが作られた時とD言語のバージョンが違うため、このままでは動きません。このまま使ってしまうと、
SDL/SDL_version_.d(66): Error: identifier 'bit' is not defined SDL/SDL_version_.d(66): Error: bit is used as a type SDL/SDL_cdrom.d(52): Error: identifier 'bit' is not defined SDL/SDL_cdrom.d(52): Error: bit is used as a type SDL/SDL_video.d(135): Error: identifier 'bit' is not defined SDL/SDL_video.d(135): Error: bit is used as a type SDL/SDL_video.d(189): Error: identifier 'bit' is not defined SDL/SDL_video.d(189): Error: bit is used as a type SDL/SDL_quit.d(43): Error: identifier 'bit' is not defined SDL/SDL_quit.d(43): Error: bit is used as a type
こんなエラーが出てしまいます。
それを回避するためには、プログラムを書き換える必要があります。
エラーメッセージを読んで、エラーに出てきたソースコードで、「bit」という型を使っているところを、全て「bool」型を使うように書き換えておきます。
そうすれば動作するようになります。
使ってみる
さっき「SDL」ディレクトリを入れた作業用ディレクトリの中に、
http://www5.atwiki.jp/yaruhara/pages/74.html#id_f29e7466 このページの「SDLを動かす(画面を出す)」というところにあるプログラムを、「sdltest.d」という名前で保存しました。
そして、「dmd sdltest.d -ISDL -L-lSDL」でコンパイルします。
コンパイルすると「sdltest」という実行ファイルができるので、それを実行すればウィンドウが表示されます。
コードを書き換える以外は一般的なやり方だと思います。
他のライブラリにも応用できそうな気もするので、別のライブラリでも試してみたいです。