RubyGem 'Salamander' が動かないよ

RubyTurtle グラフィックスができるらしい 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

 
※参考
RubyGem 'Salamander' がようやく動いたよ - Marginalia