というか、本が書かれた時と、MyGameライブラリの仕様が変わったのだろうと思うのですが、
サポートサイトにもその事が書いていないのはどうかと思いました。
■P.121
×img = Image.new("sample.bmp",200, 200)
○img = Image.new("sample.bmp",:x=>200, :y=>200)
■P.135
×fnt.str = "ABC"
○fnt.string = "ABC"
あと、短縮というか、エレガントにコードが書かれすぎていて、
理解が難しくなっている部分が多い気がします。
例えば■P.219のコード
punyas = Array.new(6){|i| Punya.new(i)}
は
punyas = Array.new(6) do |i|
Punya.new(i)
end
のほうが理解しやすいですよね。
■P.145の「mygame/boot」を使わない方法、で、
require 'mygame'
MyGame.create_screen 320,240
MyGame.main_loop do
MyGame.Image.render "sample.bmp"
end
がどうしても動作しません。
■P.247 表示物を描画するだけのプログラム
これは、1行目に、教本の通り #!ruby -Ks が入っていると、"2行目のテキストです"等の日本語表示が出来なくなります。
あと、本に書かれていない事がプログラム上でされている場合が多く、データは付属しているとはいえ、本の部分だけでは動作しないのはどうかと思います。
■P.267 選択肢
command_clear メソッドに、以下の文を加えないと動作しない。
@choices = []
@cursor_idx = nil
他、command_jumpメソッドに
command_clear が必要。
■P.284 アニメーション
class Character
def update
@image.update
end
class TrollScene < Scene::Base
def update
@acorn.update
@crow.update
end
■P.286 Trollクラスを作る
class Troll < Character
def animations
{
:stand_right => [10,[0,1,2,1]], # この行が抜けている
■P301 ブロックに乗る(2)
class Troll < Character
def init
〜
@last_y = y # この行が抜けている
@vx = @vy = 0 # この行が抜けている
あと、x,y,blockといった同じ名前の変数を使うのはやめてほしい。どれがどれなのかわからなくなるので。
開発された、MyGameライブラリの機能が素晴らしいだけに、ちょっと惜しい本です。