noanoa 日々の日記

micro:bit、Scratch、Minecraft @小学生向けプログラミング教室(三鷹)

SDL

『情報科学入門―Rubyを使って学ぶ』の isrb、isrb2 を Mac にインストールしてみた

cover


情報科学入門―Rubyを使って学ぶ』 (増原英彦、東京大学情報教育連絡会 著)

で使う isrb (画像表示ライブラリ付の対話的Ruby)をサポートページを参考に Mac にインストールしてみました。
(実行環境;OS X 10.9 Mavericks)続きを読む

StarRuby を Homebrew で Mac にインストールしてみた

Ruby の 2Dゲームライブラリの StarRuby を Mac にインストールしたメモです。

ホームページの「Mac OS X で動かす」 は MacPorts を使っています。Homebrew でインストールする情報が少なかったのですが;
→・たった200行で作れるテトリス Ruby編 - a newcomer!

が大変参考になりました。
続きを読む

Mac に Ruby/SDL、rsdl、SGE を入れて、MyGame ゲームライブラリを動かす

(2013.7.3 追記;
 Ruby 2.0.0-p.247 では rsdl もインストールできました!)


3566b
Rubyではじめるゲームプログラミング 』(山本団著)

を Mac で動かしたくて、ゲームライブラリ MyGame をインストールしてみました。

必要なライブラリは;
・SDL
・SDL_image
・SDL_mixer
・SDL_ttf
(その他、必要に応じた SDL関連ライブラリ)
・SGE(SDL Graphics Extension)
・Ruby/SDL
・rsdl(Mac で Ruby/SDLを使用する際に必要なライブラリ)
・MyGame

基本的には、この順番にインストールしていきます。

以前も、Mac にRuby/SDL等をインストールするのには苦労しましたが、
今回はなんとかインストールすることができました。

→・Mac OS X Lion にゲームライブラリ Ruby/SDL インストールではまった
→・Mac OS X に Ruby/SDL のライブラリをインストール



○ 環境
・OS X Mountain Lion 10.8.4、Lion 10.7.5 ともに同じ手順で成功

・Ruby 1.9.3-p.429 では成功、Ruby 2.0.0-p.195 では失敗(後述)



○手順
0.Command Line Tools(Xcode)、Homebrew のインストール

以前の記事を参照;
→・ Ruby 2.0.0 を Homebrew + rbenv で OS X Mountain Lion にインストール



1.SDL(および関連ライブラリ)のインストール

Homebrew を使用

$ brew update(Homebrew 自体と formula を最新版に)
$ brew upgrade(更新があるパッケージを再ビルド)
$ brew doctor(エラーがでなければ OK)

$ brew install sdl
$ brew install sdl_image
$ brew install sdl_mixer
$ brew install sdl_ttf

必要なら、その他 SDL 関連ライブラリもインストール
(sdl_gfx、sdl_rtf、sdl_sound など)

※ 以前は Homebrew でインストール失敗したが、今回すべて成功



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 にない

(参考)
https://gist.github.com/yhara/3115276
 : yhara(Yutaka HARA)さん自作の Homebrew Formula を使用

https://gist.github.com/yhara/3115276
 : yhara(Yutaka HARA)さん作成の Homebrew Formula を使用

https://gist.github.com/mitmul/5410467
 : mitmul(Shunta Saito)さん自作の Homebrew Fomula を使用

(2014.5.28 追記;
 こちらにも SGEのインストール法が載っていました。こちらの方が情報が新しいかも



mitmul さんの Homebrew Fomula の方が新しかったので、こちらを使用してインストール




3.Ruby/SDL のインストール

$ gem update --system(RubyGems を最新に)
$ gem install rubysdl



4.rsdl のインストール

※ Mac で Ruby/SDL を起動するのに必要。
 Macでは、コマンドの実行は $ ruby xxx.rb ではなく、$ rsdl xxx.rb とすること。

$ gem install rsdl


※ Ruby 2.0.0-p.195 では失敗
  Ruby 1.9.3-p.429 では成功
 (OS X 10.8.4、10.7.5 ともに)
→・rsdl が Ruby 2.0.0 では gem install でインストールエラー

 そのため、今回は Ruby 1.9.3-p.429 を使うことにしました。

(2013.7.3 追記;
 Ruby 2.0.0-p247 では、インストールできました!) 


○動作確認;
$ 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)]'

すべて true ならば OK。

$ rsdl -r sdl -e 'SDL.init(SDL::INIT_EVERYTHING); SDL.set_video_mode(640, 480, 16, SDL::SWSURFACE); sleep(1)'

灰色のウィンドウが 1秒間表れて閉じれば OK。



5.MyGame のインストール
 
MyGame ホームページ から、最新版 mygame-0.9.1.tar.gz をダウンロード

mygame-0.9.1.tar.gzを展開し、
$ cd (展開したディレクトリ) 
で、展開したディレクトリに移動し、 
$ ruby install_mygame.rb

※ Use RbConfig instead of obsolete and deprecated Config.

というエラーが出たので;
→ install_mygame.rb の中の Config をすべて RbConfig に書き換えて
再度実行。


○動作確認;
$ rsdl -r mygame/boot -e ""

※ /Users/user0/.rbenv/versions/1.9.3-p429/lib/ruby/site_ruby/1.9.1/mygame.rb:311: Use RbConfig instead of obsolete and deprecated Config.

とエラーが出たので;
→/Users/user0/.rbenv/versions/1.9.3-p429/lib/ruby/site_ruby/1.9.1ディレクトリ内の
mygame.rb 311行目の Config を RbConfig
を書き換える。

あるいは;
→(展開したディレクトリ)/libディレクトリ内の
mygame.rbの311行目の Config を RbConfig に書き換えて、再度
$ cd (展開したディレクトリ) 
$ ruby install_mygame.rb
を実行してもよい。


真っ黒なウィンドウが表れれば OK。



6.いろいろなサンプルプログラムで動作確認
(注意)
・Mac では Ruby/SDLを使ったプログラムの実行コマンドは、$ ruby xxx.rb ではなく、$ rsdl xxx.rb とすること。

・require の動作が変わったため、プログラムによっては require でエラーが出ることがある。
(Ruby 1.9.2 から $LOAD_PATH にカレントディレクトリ "." が含まれなくなったため。)

そのときは、require 'xxx' を require_relative 'xxx' と書き換えれば動くことが多い。

(2014.5.28 追記;
 あるいは、Ruby の起動時にコマンドラインオプション -I directory名 を使ってファイルをロードするパスを追加すればよい。(カレントディレクトリを追加するには .(ドット)を追加。)
$ rsdl -I. xxx.rb
で実行


(サンプルプログラム)
 ○ Ruby/SDL が必要 



○ MyGame が必要




とりあえず、ちゃんとインストールできたようです。
(※音声がうまく再生されないものもありましたが。)


(追記;Qiita [キータ] にも投稿してみました;
→・MacにRuby/SDL、rsdl、SGEを入れて、ゲームライブラリMyGameを動かす


Rubyではじめるゲームプログラミング―人気の国産言語で、誰でも簡単にゲームが作れる! (I・O BOOKS)Rubyではじめるゲームプログラミング―人気の国産言語で、誰でも簡単にゲームが作れる! (I・O BOOKS) [単行本]
著者:山本 団
出版:工学社
(2007-07)

rsdl が Ruby 2.0.0 では gem install でインストールエラー

(2013.7.3 追記;
 Ruby 2.0.0-p247 では、インストールできました!)


Mac で Ruby/SDL を使う際に必要な
rsdl ですが;

$ gem install rsdl

で、Ruby 2.0.0-p.195 ではエラーになってしまい、インストールできませんでした。
1.9.3-p.429 ではインストールできます。
(OS X  Mountain Lion10.8.4 、Lion 10.7.5 ともに)

参考)2.0.0 以前だと、gem install rsdl でできていたけど…
Mac OS X Lion にゲームライブラリ Ruby/SDL インストールではまった


困った。
とりあえずは、1.9.3-p.429 を使います。
→・Mac に Ruby/SDL、rsdl、SGE を入れて、MyGame ゲームライブラリを動かす


(ログ)
------------------------------------------------------------------------------
$ gem install rsdl
Building native extensions.  This could take a while...
ERROR:  Error installing rsdl:
ERROR: Failed to build gem native extension.

    /Users/user0/.rbenv/versions/2.0.0-p195/bin/ruby extconf.rb
extconf.rb:11:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:11:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:12:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:13:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:14:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:15:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:19:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:20:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:23:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:24:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:25:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
extconf.rb:26:in `<main>': Use RbConfig instead of obsolete and deprecated Config.
checking for ruby_sysinit()... yes
checking for ruby_run_node()... yes
creating Makefile
creating rsdl.c

make
clang -O3 -Wno-error=shorten-64-to-32  -pipe -I"/" -I"/x86_64-darwin12.3.0" -I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_THREAD_SAFE -c rsdl.c
rsdl.c:2:10: fatal error: 'ruby.h' file not found
#include <ruby.h>
         ^
1 error generated.
make: *** [rsdl.o] Error 1


Gem files will remain installed in /Users/user0/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/rsdl-0.1.4 for inspection.
Results logged to /Users/user0/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/rsdl-0.1.4/./gem_make.out
------------------------------------------------------------------------------
 
プロフィール
薬剤師なのにコンピュータが好き、鍼灸マッサージ師なのにプログラミングが好き。小中高校生向けのプログラミング教材を作るのが現在の日課。micro:bit、Scratch、Minecraft、Rubyなどで作成中。 FIREして2019年に世界一周クルーズしました。














月別アーカイブ
カテゴリ別アーカイブ
記事検索