RubyGem 'Salamander' が動かないよ
Ruby で Turtle グラフィックスができるらしい Gem で 'Salamander'(参照)ってのを見つけたのだが、Linux Mint 18 + Ruby 2.3.3 では動かないよ。
インストールは Bundler でふつうにできる。Ruby/SDL に依存しているようだが、Ruby/SDL も Bundler が勝手に入れてくれるようだ。
しかし、適当に Salamander を使ってやると
/home/tomoki/Documents/Ruby/vendor/bundle/ruby/2.3.0/gems/nice-ffi-0.4/lib/nice-ffi/library.rb:98:in `load_library': Could not load SDL_gfx. (LoadError)
というエラーが出るので、ここに従って
$ sudo apt-get install libsdl1.2-dev libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
を実行してやるととりあえずこれは OK。
しかししかし、Salamander の使い方がいまひとつわからない。サンプルがないに等しい。
仕方がないのでソースコードを読んでみて
require 'salamander' include Salamander c = Salamander.setup(500, 400) Actor.draw(c) do color :green face :east move 50 turn :right move 50 end gets
という感じかなあと実行してみるも、真っ黒なウィンドウが表示されるだけ。自分みたいなのにはよくわかりませんでした。
なお、Ruby/SDL(参照)自体はちゃんと動く。Bundler で Linux に一発インストール可能。最新バージョンは 2.2.0。スプライトが猛烈に速く動くデモとかなかなか感動的なので、何かで遊んでみたい。というか、どこかにこれを使ったサンプルゲームとか、誰か上げてないの?
後記(8/14)
上のコードは以下のようにすれば走ります。
require 'bundler/setup' require 'salamander' include Salamander include Salamander::Drawing screen = Salamander.setup(300, 300) Actor.draw(screen) do color :green face :east line 50 turn :right line 50 end screen.redraw while true event = SDL.WaitEvent break if event.type == SDL::QUIT end