サイログ。

~雑多な記事置き場~

Miyako2.1.12リリース

Miyako2.1.11に潜在の大きなバグが見つかったため、急遽2.1.12をリリースいたしました。
2.1.11が入っている方はインストール(gem install ruby-miyako/ruby-imyako-mswin32)をお願いします

gem以外のダウンロードは、こちらのリンク集Miyakoダウンロード(RubyForge)からどうぞ
変更点は、以下の3点です。

インストール方法は、リンク集Miyakoメインサイトからどうぞ。

変更点は以下の通りです。

・SpriteAnimation.newメソッドで、move_offsetパラメータを渡すと、表示位置が狂うバグを修正
・Layout#.left!で無駄なコードがあったため削除
・SpriteArray#.update_animationメソッドで、返却値を配列からtrue/falseに変更(どれかの要素のパターンが変更すればtrueを返す)
・Point/Size/Rect/Square構造体にupdate!,update_by_point!,update_by_size!,update_by_rect!,update_by_square!メソッドを追加

上2つについては…ごめんなさい。

下2つは、メモリの有効活用のためです。特にupdaet_animationの返却値に配列を渡すと、次から次へと配列が作られるため、すぐにガベージコレクションが起きやすい状態となりました。さすがに問題と判断したため、以上のような仕様に変更いたしました。ご了承をよろしくお願いいたします。
update!系メソッドは、Point同士や、RectからSizeへの値コピー時に、多大なメモリの増加を減らすために追加しました。
たとえば、以下のようなコードがくめます。

@off = Size.new

:

hogege = [Rect.new(...), ...]

:

hogege.each{|hoge| @off.update_by_size!(*hoge)

:

# 別の場所
hogege = [Rect.new(...), ...]

:

# 最初のhogegeでの値を保全
fuga.resize!(*@off)

これを使えば、hogegeの内容がちょくちょく変わるようになっていても、@offの値は保全されます。