サイログ。

~雑多な記事置き場~

ブロックによる補正を追加

Miyako2.0に新機能を加えて、githubにアップしました。

今回の機能は、「ブロックによる位置などの補正」です。
SpriteUnitを引数にしたブロックを渡すことで、位置などの一時的な補正を行える様になります*1

たとえば、一時的に画像を右へ20ピクセルずらすときはこう記述します。

  #unit・・・インスタンスに対応したSpriteUnit
  @sprite.render{|unit|
    unit.x += 20
  }

画面への描画はこうなります。*2

  #src(第1引数)・・・@spriteに対応したSpriteUnit
  #dst(第2引数)・・・Screenに対応したSpriteUnit
  Bitmap.transform(@sprite, Screen){|src, dst|
    src.xscale = xscale
    src.yscale = yscale
    src.angle = angle
  }
  xscale = ...
  yscale = ...
  angle = ...

ちょっとだけRubyっぽくなりました(笑)

ただ、肝心のスピードが・・・OTL
やたらとブロックを渡さない方が速いです(そらそうだ)

というわけで、githubのURLは以下の通りです。
http://github.com/cyross/
git://github.com/cyross/ruby-miyako.git

*1:但し、Spriteなど一部のクラスのみ有効

*2:今回は例と言うことで、Bitmap.transformを使いましたが、Sprite#render_transformを使う方法もあります