ものすごくしょんぼりなSpriteクラス

テキトーに書いたらなんとなくできたので置いておく。

require 'dxruby'

class Sprite
  attr_accessor :x, :y, :image
  attr_reader :param

  [:z, :angle, :scalex, :scaley, :centerx, :centery, :blend, :alpha].each do |key|
    eval(<<-EOS)
      def #{key}
        @param[:#{key}]
      end
      def #{key}=(val)
        @param[:#{key}] = val
      end
    EOS
  end

  def initialize
    @param = {}
    @x = 0
    @y = 0
    @image = nil
  end
end

module Window
  def self.drawSprite(spr, x = 0, y = 0)
    spr = [spr] if !spr.is_a?(Array)
    spr.each do |s|
      Window.drawEx(x + s.x, y + s.y, s.image, s.param)
    end
  end
end

s = Sprite.new
s.image = Image.new(100,100,[255,255,255])
s.x = 100
s.y = 100

Window.loop do 
  Window.drawSprite(s)
end