『Rubyではじめるゲームプログラミング』山本団著(工学社、2007年)
をMacで動かすためのメモ:
必要なライブラリ
- SDL
- SDL_image
- SDL_mixer
- SDL_ttf
- SGE(SDL Graphics Extension)
- Ruby/SDL
- rsdl
- MyGame
この順にインストールしていく
#環境
- OS X Mountain Lion(10.8.4)、または Lion(10.7.5)
- Ruby 2.0.0-p.247、または 1.9.3-p.429(※ 2.0.0-p195では rsdlのインストールでエラー)
#手順
##1.SDL(および関連ライブラリ)のインストール
Homebrew を使用
# Homebrewのアップデート、確認
$ brew update
$ brew upgrade
$ brew doctor
# SDL関連のインストール
$ brew install sdl
$ brew install sdl_image
$ brew install sdl_mixer
$ brew install sdl_ttf
必要なら、その他 SDL関連ライブラリもインストール
(sdl_gfx、sdl_rtf、sdl_sound など)
##2.SGE(SDL Graphics Extension)のインストール
(2013.11.18 追記;
Ruby/SDL 2.1.3 から SGE が含まれるようになったので、SGE のインストールは省略できるかも
= SGEをインストールせずに使う
Ruby/SDLが内部で SGE を持っています。
gem install rubysdl -- --enable-bundled-sge
〜(中略)〜
ただし、この仕組みはできれば使わないでください。
SGEが別にインストール可能ならそちらを使ってください。
〜 「Ruby/SDL README.ja」より)
これは、HomebrewにFormulaがない
(参考)
-
Ruby - Mac OS X Lionにsgeを入れる - yhara : Qiita [キータ]
→ yhara(Yutaka HARA)さん自作のFormulaを使用
https://gist.github.com/yhara/3115276 -
物理シミュレーション覚書 - akicho8 : GitHub
→ 上記Formulaを使用 -
Ruby-SDL(とSGE) - computable? : mitmul : Hatena Blog
→ mitmul(Shunta Saito)さん自作のFomulaを使用
https://gist.github.com/mitmul/5410467
(2014.5.28 追記;
こちらにも SGEのインストール法が載っていました。こちらの方が情報が新しいかも
mitmulさんの方が新しかったので、こちらを使用してインストール
# SGEのインストール
$ brew install https://gist.github.com/mitmul/5410467/raw/c4fa716635e951b61f489726976b10f00dd41306/sge.rb
##3.Ruby/SDLのインストール
# RubyGemsのアップデート
$ gem update --system
# Ruby/SDLのインストール
$ gem install rubysdl
##4.rsdlのインストール
MacでRuby/SDLを起動するのに必要
※ Macでは、Ruby/SDLの実行は $ ruby foo.rb
の代わりに、$ rsdl foo.rb
とする
# rsdlのインストール
$ gem install rsdl
(注; 2.0.0-p195 ではインストールでエラーになる)
##5.ここまでの動作確認
# すべて trueならば OK
$ ruby -r sdl -e 'p [:mixer, SDL.constants.include?(:Mixer)]'
$ ruby -r sdl -e 'p [:ttf, SDL.constants.include?(:TTF)]'
$ ruby -r sdl -e 'p [:sge, SDL.respond_to?(:autoLock)]'
# 灰色のウィンドウが 1秒間表れて閉じれば OK
$ rsdl -r sdl -e 'SDL.init(SDL::INIT_EVERYTHING); SDL.set_video_mode(640, 480, 16, SDL::SWSURFACE); sleep(1)'
##6.MyGameのインストール
MyGameホームページから、最新版mygame-0.9.1.tar.gzをダウンロード、展開
・修正
Use RbConfig instead of obsolete and deprecated Config.
というエラーを回避するために、
Config
をすべてRbConfig
に修正する
# 修正
17: dlldir ||= RbConfig::CONFIG["bindir"]
18: sitelibdir = RbConfig::CONFIG["sitelibdir"]
19: sitearchdir = RbConfig::CONFIG["sitearchdir"]
20: datadir = RbConfig::CONFIG["datadir"]
# 修正
311: datadir = RbConfig::CONFIG["datadir"]
・ MyGameのインストール
# 展開したディレクトリ barに移動
$ cd bar
# MyGameのインストール
$ ruby install_mygame.rb
##7.MyGameの動作確認
# 真っ黒なウィンドウが表れれば OK
$ rsdl -r mygame/boot -e ""
##8.いろいろなサンプルプログラムで動作確認
(注意)
-
Macでは、Ruby/SDLを使ったプログラムの実行は
$ ruby foo.rb
の代わりに、$ rsdl foo.rb
とする -
Ruby 1.9.2から
require
がカレントディレクトリをロードしなくなったため、それ以前のプログラムはrequire
でエラーが出ることがある
そのときは、require 'bar'
をrequire_relative 'bar'
と書き換えれば動くことが多い
(2014.5.28 追記;
あるいは、Ruby の起動時にコマンドラインオプション -I directory名
を使ってファイルをロードするパスを追加する。カレントディレクトリを追加するには .(ドット)を追加すればよい。
$ rsdl -I. baz.rb
で実行。
→ ・Star Rubyのインストール - ザリガニが見ていた...。 )
###サンプルプログラム
- Ruby/SDLが必要(MyGameは不要)
- MyGameが必要
(→・元記事)