ruby-miyako-mswin32 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +275 -20
 - data/install_miyako.rb +5 -3
 - data/lib/Miyako/API/audio.rb +11 -6
 - data/lib/Miyako/API/basic_data.rb +0 -985
 - data/lib/Miyako/API/bitmap.rb +19 -22
 - data/lib/Miyako/API/choices.rb +203 -69
 - data/lib/Miyako/API/collision.rb +451 -9
 - data/lib/Miyako/API/color.rb +177 -0
 - data/lib/Miyako/API/diagram.rb +18 -20
 - data/lib/Miyako/API/fixedmap.rb +207 -73
 - data/lib/Miyako/API/font.rb +111 -18
 - data/lib/Miyako/API/i_yuki.rb +1201 -0
 - data/lib/Miyako/API/input.rb +65 -0
 - data/lib/Miyako/API/layout.rb +41 -29
 - data/lib/Miyako/API/map.rb +202 -157
 - data/lib/Miyako/API/map_event.rb +86 -19
 - data/lib/Miyako/API/map_struct.rb +268 -0
 - data/lib/Miyako/API/modules.rb +136 -37
 - data/lib/Miyako/API/movie.rb +8 -8
 - data/lib/Miyako/API/parts.rb +63 -20
 - data/lib/Miyako/API/plane.rb +4 -4
 - data/lib/Miyako/API/screen.rb +16 -8
 - data/lib/Miyako/API/sprite.rb +290 -23
 - data/lib/Miyako/API/sprite_animation.rb +23 -11
 - data/lib/Miyako/API/sprite_list.rb +406 -183
 - data/lib/Miyako/API/story.rb +4 -65
 - data/lib/Miyako/API/struct_point.rb +157 -0
 - data/lib/Miyako/API/struct_rect.rb +233 -0
 - data/lib/Miyako/API/struct_segment.rb +641 -0
 - data/lib/Miyako/API/struct_size.rb +158 -0
 - data/lib/Miyako/API/struct_square.rb +253 -0
 - data/lib/Miyako/API/textbox.rb +49 -35
 - data/lib/Miyako/API/viewport.rb +5 -5
 - data/lib/Miyako/API/wait_counter.rb +350 -0
 - data/lib/Miyako/API/yuki.rb +95 -60
 - data/lib/Miyako/EXT/raster_scroll.rb +30 -8
 - data/lib/Miyako/EXT/slides.rb +6 -6
 - data/lib/Miyako/miyako.rb +25 -11
 - data/lib/Miyako/miyako_no_katana.so +0 -0
 - data/lib/miyako.rb +28 -0
 - data/lib/miyako_require_only.rb +35 -0
 - data/sample/Diagram_sample/diagram_sample_yuki2.rb +30 -30
 - data/sample/Room3/blue.rb +19 -19
 - data/sample/Room3/green.rb +9 -9
 - data/sample/Room3/main.rb +12 -12
 - data/sample/Room3/red.rb +12 -12
 - data/sample/Room3/title.rb +15 -10
 - data/sample/collision_test2.rb +2 -1
 - data/sample/fixed_map_test/fixed_map_sample.rb +7 -6
 - data/sample/map_test/main_scene.rb +12 -10
 - data/sample/map_test/map_manager.rb +14 -13
 - data/sample/rasterscroll.rb +5 -5
 - data/sample/takahashi.rb +3 -3
 - data/sample/textbox_sample.rb +8 -5
 - data/sample/transform.rb +2 -1
 - data/uninstall_miyako.rb +4 -1
 - metadata +13 -4
 - data/lib/Miyako/EXT/miyako_cairo.rb +0 -62
 - data/sample/cairo_sample.rb +0 -25
 
    
        data/lib/Miyako/API/sprite.rb
    CHANGED
    
    | 
         @@ -32,11 +32,25 @@ module Miyako 
     | 
|
| 
       32 
32 
     | 
    
         
             
                include SingleEnumerable
         
     | 
| 
       33 
33 
     | 
    
         
             
                extend Forwardable
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
                attr_accessor :visible 
     | 
| 
       36 
     | 
    
         
            -
                 
     | 
| 
       37 
     | 
    
         
            -
                attr_reader : 
     | 
| 
      
 35 
     | 
    
         
            +
                attr_accessor :visible   #レンダリングの可否(true->描画 false->非描画)
         
     | 
| 
      
 36 
     | 
    
         
            +
                attr_accessor :collision #Collision#bindで関連づけられた当たり判定
         
     | 
| 
      
 37 
     | 
    
         
            +
                attr_reader :tr_color    #カラーキーが有向になっている場合のRGB値。[R,G,B]の配列(各要素は0~255の整数)
         
     | 
| 
      
 38 
     | 
    
         
            +
                attr_reader :type        #画像の透明度・透過タイプを取得する(詳細はSprite.newメソッドを参照)
         
     | 
| 
       38 
39 
     | 
    
         | 
| 
       39 
40 
     | 
    
         
             
                @@abb = {:ck => :color_key, :as => :alpha_surface, :ac => :alpha_channel}
         
     | 
| 
      
 41 
     | 
    
         
            +
                @@sprites = SpriteList.new
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                def Sprite.sprites
         
     | 
| 
      
 44 
     | 
    
         
            +
                  @@sprites
         
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                def Sprite.[](name)
         
     | 
| 
      
 48 
     | 
    
         
            +
                  @@sprites[name]
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                def Sprite.[]=(name, sprite)
         
     | 
| 
      
 52 
     | 
    
         
            +
                  @@sprites[name] = sprite
         
     | 
| 
      
 53 
     | 
    
         
            +
                end
         
     | 
| 
       40 
54 
     | 
    
         | 
| 
       41 
55 
     | 
    
         
             
                def setup #:nodoc:
         
     | 
| 
       42 
56 
     | 
    
         
             
                  @unit = SpriteUnitFactory.create
         
     | 
| 
         @@ -47,6 +61,7 @@ module Miyako 
     | 
|
| 
       47 
61 
     | 
    
         
             
                  @h = 0
         
     | 
| 
       48 
62 
     | 
    
         
             
                  @draw_list = nil
         
     | 
| 
       49 
63 
     | 
    
         
             
                  @visible = true
         
     | 
| 
      
 64 
     | 
    
         
            +
                  @collision = nil
         
     | 
| 
       50 
65 
     | 
    
         
             
                end
         
     | 
| 
       51 
66 
     | 
    
         | 
| 
       52 
67 
     | 
    
         
             
                private :setup
         
     | 
| 
         @@ -84,6 +99,16 @@ module Miyako 
     | 
|
| 
       84 
99 
     | 
    
         
             
                #       (例2):type=>:ck, :tr_color=>:red # 赤色を透明色に)
         
     | 
| 
       85 
100 
     | 
    
         
             
                #    * デフォルト:画像の[0,0]の位置にあるピクセルの色
         
     | 
| 
       86 
101 
     | 
    
         
             
                #* 3. αチャネル付き画像を使用(設定変更不可) (書式):type=>:alpha_channel(:ac)
         
     | 
| 
      
 102 
     | 
    
         
            +
                #* 4.背景塗りつぶし。必要ならば、色を指定してその色で塗りつぶす
         
     | 
| 
      
 103 
     | 
    
         
            +
                # (書式):fill=>[255,255,255] #=> 白で塗りつぶす
         
     | 
| 
      
 104 
     | 
    
         
            +
                # 省略時は塗りつぶさない
         
     | 
| 
      
 105 
     | 
    
         
            +
                #* 5.半透明設定。必要ならば、指定した割合で透明度を変える
         
     | 
| 
      
 106 
     | 
    
         
            +
                # 値の範囲は0.0 <= alpha <= 1.0。範囲外の値を渡すとMiyakoValueErrorが発生
         
     | 
| 
      
 107 
     | 
    
         
            +
                # (書式):alpha=>0.5 #=> 半透明
         
     | 
| 
      
 108 
     | 
    
         
            +
                # (書式):alpha=>0.1 #=> 1割残っている程度
         
     | 
| 
      
 109 
     | 
    
         
            +
                # (書式):alpha=>0.0 #=> 完全透明
         
     | 
| 
      
 110 
     | 
    
         
            +
                # (書式):alpha=>1.0 #=> 完全不透明
         
     | 
| 
      
 111 
     | 
    
         
            +
                # 省略時は生成時そのままの画像
         
     | 
| 
       87 
112 
     | 
    
         
             
                def initialize(param)
         
     | 
| 
       88 
113 
     | 
    
         
             
                  raise MiyakoError, "Sprite instance cannot create uninitialized yet!" unless Screen.initialized?
         
     | 
| 
       89 
114 
     | 
    
         
             
                  raise MiyakoTypeError, "Sprite parameter is not Hash!" unless param.kind_of?(Hash)
         
     | 
| 
         @@ -98,22 +123,24 @@ module Miyako 
     | 
|
| 
       98 
123 
     | 
    
         
             
                  param[:point]  ||= Point.new(0, 0)
         
     | 
| 
       99 
124 
     | 
    
         
             
                  param[:tr_color]  ||= Color[:black]
         
     | 
| 
       100 
125 
     | 
    
         
             
                  param[:is_fill] ||= false
         
     | 
| 
       101 
     | 
    
         
            -
                  
         
     | 
| 
      
 126 
     | 
    
         
            +
                  param[:fill] ||= nil
         
     | 
| 
      
 127 
     | 
    
         
            +
                  param[:alpha] ||= nil
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
       102 
129 
     | 
    
         
             
                  if param.has_key?(:bitmap) || param.has_key?(:bmp)
         
     | 
| 
       103 
     | 
    
         
            -
                    bitmap = param[:bitmap] || param[:bmp]
         
     | 
| 
      
 130 
     | 
    
         
            +
                    self.bitmap = param[:bitmap] || param[:bmp]
         
     | 
| 
       104 
131 
     | 
    
         
             
                  elsif param.has_key?(:size)
         
     | 
| 
       105 
     | 
    
         
            -
                    bitmap = Bitmap.create(*(param[:size].to_a))
         
     | 
| 
      
 132 
     | 
    
         
            +
                    self.bitmap = Bitmap.create(*(param[:size].to_a))
         
     | 
| 
       106 
133 
     | 
    
         
             
                    param[:is_fill] = true
         
     | 
| 
       107 
134 
     | 
    
         
             
                  elsif param.has_key?(:filename) || param.has_key?(:file)
         
     | 
| 
       108 
135 
     | 
    
         
             
                    name = param[:filename] || param[:file]
         
     | 
| 
       109 
136 
     | 
    
         
             
                    raise MiyakoIOError.no_file(name) unless File.exist?(name)
         
     | 
| 
       110 
137 
     | 
    
         
             
                    begin
         
     | 
| 
       111 
     | 
    
         
            -
                      bitmap = Bitmap.load(name)
         
     | 
| 
      
 138 
     | 
    
         
            +
                      self.bitmap = Bitmap.load(name)
         
     | 
| 
       112 
139 
     | 
    
         
             
                    rescue SDL::Error
         
     | 
| 
       113 
140 
     | 
    
         
             
                      raise MiyakoFileFormatError, "Illegal file format! collect? #{name}"
         
     | 
| 
       114 
141 
     | 
    
         
             
                    end
         
     | 
| 
       115 
142 
     | 
    
         
             
                  elsif param.has_key?(:unit)
         
     | 
| 
       116 
     | 
    
         
            -
                    bitmap = param[:unit].bitmap
         
     | 
| 
      
 143 
     | 
    
         
            +
                    self.bitmap = param[:unit].bitmap
         
     | 
| 
       117 
144 
     | 
    
         
             
                  else
         
     | 
| 
       118 
145 
     | 
    
         
             
                    raise MiyakoError, "Illegal Sprite parameter!"
         
     | 
| 
       119 
146 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -121,13 +148,11 @@ module Miyako 
     | 
|
| 
       121 
148 
     | 
    
         
             
                  case param[:type]
         
     | 
| 
       122 
149 
     | 
    
         
             
                  when :color_key
         
     | 
| 
       123 
150 
     | 
    
         
             
                    if param.has_key?(:point)
         
     | 
| 
       124 
     | 
    
         
            -
                      @tr_color = Color.to_rgb(bitmap.get_rgb(bitmap.getPixel(*(param[:point].to_a))))
         
     | 
| 
      
 151 
     | 
    
         
            +
                      @tr_color = Color.to_rgb(@unit.bitmap.get_rgb(@unit.bitmap.getPixel(*(param[:point].to_a))))
         
     | 
| 
       125 
152 
     | 
    
         
             
                    else
         
     | 
| 
       126 
153 
     | 
    
         
             
                      @tr_color = Color.to_rgb(param[:tr_color])
         
     | 
| 
       127 
154 
     | 
    
         
             
                    end
         
     | 
| 
       128 
155 
     | 
    
         
             
                    # カラーキーのα値を0にしたビットマップを作成
         
     | 
| 
       129 
     | 
    
         
            -
            #        self.bitmap = Bitmap.create_from(bitmap)
         
     | 
| 
       130 
     | 
    
         
            -
                    self.bitmap = bitmap.display_format_alpha
         
     | 
| 
       131 
156 
     | 
    
         
             
                    if param[:is_fill]
         
     | 
| 
       132 
157 
     | 
    
         
             
                      @unit.bitmap.fill_rect(0,0,@unit.bitmap.w,@unit.bitmap.h,[0, 0, 0])
         
     | 
| 
       133 
158 
     | 
    
         
             
                      Bitmap.ck_to_ac!(@unit, [0,0,0])
         
     | 
| 
         @@ -136,23 +161,18 @@ module Miyako 
     | 
|
| 
       136 
161 
     | 
    
         
             
                    end
         
     | 
| 
       137 
162 
     | 
    
         
             
                  when :alpha_surface
         
     | 
| 
       138 
163 
     | 
    
         
             
                    # カラーキーのα値を0にしたビットマップを作成
         
     | 
| 
       139 
     | 
    
         
            -
            #        self.bitmap = Bitmap.create_from(bitmap)
         
     | 
| 
       140 
     | 
    
         
            -
                    self.bitmap = bitmap.display_format_alpha
         
     | 
| 
       141 
164 
     | 
    
         
             
                    Bitmap.normal_to_ac!(@unit)
         
     | 
| 
       142 
165 
     | 
    
         
             
                    if param[:is_fill]
         
     | 
| 
       143 
166 
     | 
    
         
             
                      @unit.bitmap.fill_rect(0,0,@unit.bitmap.w,@unit.bitmap.h,[0, 0, 0])
         
     | 
| 
       144 
167 
     | 
    
         
             
                      Bitmap.ck_to_ac!(@unit, [0,0,0])
         
     | 
| 
       145 
168 
     | 
    
         
             
                    end
         
     | 
| 
       146 
169 
     | 
    
         
             
                  when :alpha_channel
         
     | 
| 
       147 
     | 
    
         
            -
            #        self.bitmap = Bitmap.create_from(bitmap)
         
     | 
| 
       148 
     | 
    
         
            -
                    self.bitmap = bitmap.display_format_alpha
         
     | 
| 
       149 
170 
     | 
    
         
             
                    if param[:is_fill]
         
     | 
| 
       150 
171 
     | 
    
         
             
                      @unit.bitmap.fill_rect(0,0,@unit.bitmap.w,@unit.bitmap.h,[0, 0, 0])
         
     | 
| 
       151 
172 
     | 
    
         
             
                      Bitmap.ck_to_ac!(@unit, [0,0,0])
         
     | 
| 
       152 
173 
     | 
    
         
             
                    end
         
     | 
| 
       153 
     | 
    
         
            -
                   
     | 
| 
       154 
     | 
    
         
            -
            # 
     | 
| 
       155 
     | 
    
         
            -
                    self.bitmap = bitmap.display_format_alpha
         
     | 
| 
      
 174 
     | 
    
         
            +
                  else
         
     | 
| 
      
 175 
     | 
    
         
            +
                    # 何もしない
         
     | 
| 
       156 
176 
     | 
    
         
             
                  end
         
     | 
| 
       157 
177 
     | 
    
         
             
                  @type = param[:type]
         
     | 
| 
       158 
178 
     | 
    
         | 
| 
         @@ -161,10 +181,20 @@ module Miyako 
     | 
|
| 
       161 
181 
     | 
    
         
             
                                                   :cx => param[:unit].cx, :cy => param[:unit].cy)
         
     | 
| 
       162 
182 
     | 
    
         
             
                    self.move_to!(param[:unit].x, param[:unit].y)
         
     | 
| 
       163 
183 
     | 
    
         
             
                  end
         
     | 
| 
      
 184 
     | 
    
         
            +
             
     | 
| 
      
 185 
     | 
    
         
            +
                  if param[:fill]
         
     | 
| 
      
 186 
     | 
    
         
            +
                    self.fill(param[:fill])
         
     | 
| 
      
 187 
     | 
    
         
            +
                  end
         
     | 
| 
      
 188 
     | 
    
         
            +
             
     | 
| 
      
 189 
     | 
    
         
            +
                  if param[:alpha]
         
     | 
| 
      
 190 
     | 
    
         
            +
                    alpha = param[:alpha]
         
     | 
| 
      
 191 
     | 
    
         
            +
                    raise MiyakoValueError, "alpha is 0<=alpha<=1. value=#{param[:alpha]}" unless (alpha >= 0.0 and alpha <= 1.0)
         
     | 
| 
      
 192 
     | 
    
         
            +
                    Bitmap.dec_alpha!(self, alpha)
         
     | 
| 
      
 193 
     | 
    
         
            +
                  end
         
     | 
| 
       164 
194 
     | 
    
         
             
                end
         
     | 
| 
       165 
195 
     | 
    
         | 
| 
       166 
196 
     | 
    
         
             
                def_delegators(:@unit, :ox, :oy, :ow, :oh, :x, :y)
         
     | 
| 
       167 
     | 
    
         
            -
             
     | 
| 
      
 197 
     | 
    
         
            +
             
     | 
| 
       168 
198 
     | 
    
         
             
                #===複写時に呼び出されるメソッド
         
     | 
| 
       169 
199 
     | 
    
         
             
                #複写と同時に、本インスタンスに対するスナップの関係を解消
         
     | 
| 
       170 
200 
     | 
    
         
             
                def initialize_copy(obj)
         
     | 
| 
         @@ -175,7 +205,7 @@ module Miyako 
     | 
|
| 
       175 
205 
     | 
    
         
             
                def unit=(unit) #:nodoc:
         
     | 
| 
       176 
206 
     | 
    
         
             
                  @unit = unit
         
     | 
| 
       177 
207 
     | 
    
         
             
                end
         
     | 
| 
       178 
     | 
    
         
            -
             
     | 
| 
      
 208 
     | 
    
         
            +
             
     | 
| 
       179 
209 
     | 
    
         
             
                def update_layout_position #:nodoc:
         
     | 
| 
       180 
210 
     | 
    
         
             
                  @unit.move_to!(*@layout.pos)
         
     | 
| 
       181 
211 
     | 
    
         
             
                end
         
     | 
| 
         @@ -221,7 +251,7 @@ module Miyako 
     | 
|
| 
       221 
251 
     | 
    
         
             
                  raise MiyakoValueError, "Illegal ox parameter! : #{v} (range: 0..#{@w-@unit.ow})" if (v < 0 || (v+@unit.ow) > @w)
         
     | 
| 
       222 
252 
     | 
    
         
             
                  @unit.ox = v
         
     | 
| 
       223 
253 
     | 
    
         
             
                end
         
     | 
| 
       224 
     | 
    
         
            -
             
     | 
| 
      
 254 
     | 
    
         
            +
             
     | 
| 
       225 
255 
     | 
    
         
             
                #===画像の表示開始位置(Y座標)を指定する
         
     | 
| 
       226 
256 
     | 
    
         
             
                #oyを指定すると、表示の左上位置が変更される。
         
     | 
| 
       227 
257 
     | 
    
         
             
                #値が画像の高さの範囲外(値がマイナス、画像の高さを超える値)のときは例外が発生する
         
     | 
| 
         @@ -230,7 +260,7 @@ module Miyako 
     | 
|
| 
       230 
260 
     | 
    
         
             
                  raise MiyakoValueError, "Illegal oy parameter! : #{v} (range: 0..#{@h-@unit.oh})" if (v < 0 || (v+@unit.oh) > @h)
         
     | 
| 
       231 
261 
     | 
    
         
             
                  @unit.oy = v
         
     | 
| 
       232 
262 
     | 
    
         
             
                end
         
     | 
| 
       233 
     | 
    
         
            -
             
     | 
| 
      
 263 
     | 
    
         
            +
             
     | 
| 
       234 
264 
     | 
    
         
             
                #===画像の表示幅を指定する
         
     | 
| 
       235 
265 
     | 
    
         
             
                #owを指定すると、横方向の一部のみ表示される。
         
     | 
| 
       236 
266 
     | 
    
         
             
                #値が画像の幅の範囲外(値がマイナス、画像の幅を超える値)のときは例外が発生する
         
     | 
| 
         @@ -251,6 +281,155 @@ module Miyako 
     | 
|
| 
       251 
281 
     | 
    
         
             
                  set_layout_size(@unit.ow, v)
         
     | 
| 
       252 
282 
     | 
    
         
             
                end
         
     | 
| 
       253 
283 
     | 
    
         | 
| 
      
 284 
     | 
    
         
            +
                #=== スプライトの部分描画矩形を返す
         
     | 
| 
      
 285 
     | 
    
         
            +
                #返却値:: Rect構造体インスタンス
         
     | 
| 
      
 286 
     | 
    
         
            +
                def part_rect
         
     | 
| 
      
 287 
     | 
    
         
            +
                  return Rect.new(self.ox,self.oy,self.ow,self.oh)
         
     | 
| 
      
 288 
     | 
    
         
            +
                end
         
     | 
| 
      
 289 
     | 
    
         
            +
             
     | 
| 
      
 290 
     | 
    
         
            +
                def adjust_part(ox, oy, ow, oh)
         
     | 
| 
      
 291 
     | 
    
         
            +
                  if ox < 0
         
     | 
| 
      
 292 
     | 
    
         
            +
                    ow += ox
         
     | 
| 
      
 293 
     | 
    
         
            +
                    ox = 0
         
     | 
| 
      
 294 
     | 
    
         
            +
                  end
         
     | 
| 
      
 295 
     | 
    
         
            +
                  if oy < 0
         
     | 
| 
      
 296 
     | 
    
         
            +
                    oh += oy
         
     | 
| 
      
 297 
     | 
    
         
            +
                    oy = 0
         
     | 
| 
      
 298 
     | 
    
         
            +
                  end
         
     | 
| 
      
 299 
     | 
    
         
            +
                  ow = 1 if ow <= 0
         
     | 
| 
      
 300 
     | 
    
         
            +
                  oh = 1 if oh <= 0
         
     | 
| 
      
 301 
     | 
    
         
            +
                  if ox + ow > w
         
     | 
| 
      
 302 
     | 
    
         
            +
                    ow = w - ox
         
     | 
| 
      
 303 
     | 
    
         
            +
                    if ow == 0
         
     | 
| 
      
 304 
     | 
    
         
            +
                      ox -= 1
         
     | 
| 
      
 305 
     | 
    
         
            +
                      ow = 1
         
     | 
| 
      
 306 
     | 
    
         
            +
                    end
         
     | 
| 
      
 307 
     | 
    
         
            +
                  end
         
     | 
| 
      
 308 
     | 
    
         
            +
                  if oy + oh > h
         
     | 
| 
      
 309 
     | 
    
         
            +
                    oh = h - oy
         
     | 
| 
      
 310 
     | 
    
         
            +
                    if oh == 0
         
     | 
| 
      
 311 
     | 
    
         
            +
                      oy -= 1
         
     | 
| 
      
 312 
     | 
    
         
            +
                      oh = 1
         
     | 
| 
      
 313 
     | 
    
         
            +
                    end
         
     | 
| 
      
 314 
     | 
    
         
            +
                  end
         
     | 
| 
      
 315 
     | 
    
         
            +
                  Rect.new(ox,oy,ow,oh)
         
     | 
| 
      
 316 
     | 
    
         
            +
                end
         
     | 
| 
      
 317 
     | 
    
         
            +
             
     | 
| 
      
 318 
     | 
    
         
            +
                private :adjust_part
         
     | 
| 
      
 319 
     | 
    
         
            +
             
     | 
| 
      
 320 
     | 
    
         
            +
                #=== 範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる
         
     | 
| 
      
 321 
     | 
    
         
            +
                #
         
     | 
| 
      
 322 
     | 
    
         
            +
                #返却値:: 自分自身
         
     | 
| 
      
 323 
     | 
    
         
            +
                def part_move!(dx, dy)
         
     | 
| 
      
 324 
     | 
    
         
            +
                  @unit.ox, @unit.oy, @unit.ow, @unit.oh =
         
     | 
| 
      
 325 
     | 
    
         
            +
                    adjust_part(
         
     | 
| 
      
 326 
     | 
    
         
            +
                      dx ? @unit.ox+dx : @unit.ox,
         
     | 
| 
      
 327 
     | 
    
         
            +
                      dy ? @unit.oy+dy : @unit.oy,
         
     | 
| 
      
 328 
     | 
    
         
            +
                      @unit.ow,
         
     | 
| 
      
 329 
     | 
    
         
            +
                      @unit.oh
         
     | 
| 
      
 330 
     | 
    
         
            +
                    )
         
     | 
| 
      
 331 
     | 
    
         
            +
                  return self
         
     | 
| 
      
 332 
     | 
    
         
            +
                end
         
     | 
| 
      
 333 
     | 
    
         
            +
             
     | 
| 
      
 334 
     | 
    
         
            +
                #=== 範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる
         
     | 
| 
      
 335 
     | 
    
         
            +
                #返却値:: 自分自身
         
     | 
| 
      
 336 
     | 
    
         
            +
                def part_move_to!(x, y)
         
     | 
| 
      
 337 
     | 
    
         
            +
                  @unit.ox, @unit.oy, @unit.ow, @unit.oh =
         
     | 
| 
      
 338 
     | 
    
         
            +
                    adjust_part(
         
     | 
| 
      
 339 
     | 
    
         
            +
                      x ? x : @unit.ox,
         
     | 
| 
      
 340 
     | 
    
         
            +
                      y ? y : @unit.oy,
         
     | 
| 
      
 341 
     | 
    
         
            +
                      @unit.ow,
         
     | 
| 
      
 342 
     | 
    
         
            +
                      @unit.oh
         
     | 
| 
      
 343 
     | 
    
         
            +
                    )
         
     | 
| 
      
 344 
     | 
    
         
            +
                  return self
         
     | 
| 
      
 345 
     | 
    
         
            +
                end
         
     | 
| 
      
 346 
     | 
    
         
            +
             
     | 
| 
      
 347 
     | 
    
         
            +
                #=== 範囲を画像の大きさに合わせながら、部分描画の大きさを変える
         
     | 
| 
      
 348 
     | 
    
         
            +
                #返却値:: 自分自身
         
     | 
| 
      
 349 
     | 
    
         
            +
                def part_resize!(dw, dh)
         
     | 
| 
      
 350 
     | 
    
         
            +
                  @unit.ox, @unit.oy, @unit.ow, @unit.oh =
         
     | 
| 
      
 351 
     | 
    
         
            +
                    adjust_part(
         
     | 
| 
      
 352 
     | 
    
         
            +
                      @unit.ox,
         
     | 
| 
      
 353 
     | 
    
         
            +
                      @unit.oy,
         
     | 
| 
      
 354 
     | 
    
         
            +
                      dw ? @unit.ow+dw : @unit.ow,
         
     | 
| 
      
 355 
     | 
    
         
            +
                      dh ? @unit.oh+dh : @unit.oh
         
     | 
| 
      
 356 
     | 
    
         
            +
                    )
         
     | 
| 
      
 357 
     | 
    
         
            +
                  return self
         
     | 
| 
      
 358 
     | 
    
         
            +
                end
         
     | 
| 
      
 359 
     | 
    
         
            +
             
     | 
| 
      
 360 
     | 
    
         
            +
                #=== 範囲を画像の大きさに合わせながら、部分描画の大きさを変える
         
     | 
| 
      
 361 
     | 
    
         
            +
                #返却値:: 自分自身
         
     | 
| 
      
 362 
     | 
    
         
            +
                def part_resize_to!(w, h)
         
     | 
| 
      
 363 
     | 
    
         
            +
                  @unit.ox, @unit.oy, @unit.ow, @unit.oh =
         
     | 
| 
      
 364 
     | 
    
         
            +
                    adjust_part(
         
     | 
| 
      
 365 
     | 
    
         
            +
                      @unit.ox,
         
     | 
| 
      
 366 
     | 
    
         
            +
                      @unit.oy,
         
     | 
| 
      
 367 
     | 
    
         
            +
                      w ? w : @unit.ow,
         
     | 
| 
      
 368 
     | 
    
         
            +
                      h ? h : @unit.oh
         
     | 
| 
      
 369 
     | 
    
         
            +
                    )
         
     | 
| 
      
 370 
     | 
    
         
            +
                  return self
         
     | 
| 
      
 371 
     | 
    
         
            +
                end
         
     | 
| 
      
 372 
     | 
    
         
            +
             
     | 
| 
      
 373 
     | 
    
         
            +
                #=== 範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる
         
     | 
| 
      
 374 
     | 
    
         
            +
                #ただし、移動した後の矩形を得られるだけで、内部を変更しない
         
     | 
| 
      
 375 
     | 
    
         
            +
                #返却値:: 変更後の部分描画矩形(Rect構造体)
         
     | 
| 
      
 376 
     | 
    
         
            +
                def part_move(dx, dy)
         
     | 
| 
      
 377 
     | 
    
         
            +
                  return adjust_part(
         
     | 
| 
      
 378 
     | 
    
         
            +
                           dx ? self.ox+dx : self.ox,
         
     | 
| 
      
 379 
     | 
    
         
            +
                           dy ? self.oy+dy : self.oy,
         
     | 
| 
      
 380 
     | 
    
         
            +
                           self.ow,
         
     | 
| 
      
 381 
     | 
    
         
            +
                           self.oh
         
     | 
| 
      
 382 
     | 
    
         
            +
                         )
         
     | 
| 
      
 383 
     | 
    
         
            +
                end
         
     | 
| 
      
 384 
     | 
    
         
            +
             
     | 
| 
      
 385 
     | 
    
         
            +
                #=== 範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる
         
     | 
| 
      
 386 
     | 
    
         
            +
                #ただし、移動した後の矩形を得られるだけで、内部を変更しない
         
     | 
| 
      
 387 
     | 
    
         
            +
                #返却値:: 変更後の部分描画矩形(Rect構造体)
         
     | 
| 
      
 388 
     | 
    
         
            +
                def part_move_to(x, y)
         
     | 
| 
      
 389 
     | 
    
         
            +
                  return adjust_part(
         
     | 
| 
      
 390 
     | 
    
         
            +
                           x ? x : self.ox,
         
     | 
| 
      
 391 
     | 
    
         
            +
                           y ? y : self.oy,
         
     | 
| 
      
 392 
     | 
    
         
            +
                           self.ow,
         
     | 
| 
      
 393 
     | 
    
         
            +
                           self.oh
         
     | 
| 
      
 394 
     | 
    
         
            +
                         )
         
     | 
| 
      
 395 
     | 
    
         
            +
                end
         
     | 
| 
      
 396 
     | 
    
         
            +
             
     | 
| 
      
 397 
     | 
    
         
            +
                #=== 範囲を画像の大きさに合わせながら、部分描画の大きさを変える
         
     | 
| 
      
 398 
     | 
    
         
            +
                #ただし、移動した後の矩形を得られるだけで、内部を変更しない
         
     | 
| 
      
 399 
     | 
    
         
            +
                #返却値:: 変更後の部分描画矩形(Rect構造体)
         
     | 
| 
      
 400 
     | 
    
         
            +
                def part_resize(dw, dh)
         
     | 
| 
      
 401 
     | 
    
         
            +
                  return adjust_part(
         
     | 
| 
      
 402 
     | 
    
         
            +
                           self.ox,
         
     | 
| 
      
 403 
     | 
    
         
            +
                           self.oy,
         
     | 
| 
      
 404 
     | 
    
         
            +
                           dw ? self.ow+dw : self.ow,
         
     | 
| 
      
 405 
     | 
    
         
            +
                           dh ? self.oh+dh : self.oh
         
     | 
| 
      
 406 
     | 
    
         
            +
                         )
         
     | 
| 
      
 407 
     | 
    
         
            +
                end
         
     | 
| 
      
 408 
     | 
    
         
            +
             
     | 
| 
      
 409 
     | 
    
         
            +
                #=== 範囲を画像の大きさに合わせながら、部分描画の大きさを変える
         
     | 
| 
      
 410 
     | 
    
         
            +
                #ただし、移動した後の矩形を得られるだけで、内部を変更しない
         
     | 
| 
      
 411 
     | 
    
         
            +
                #返却値:: 変更後の部分描画矩形(Rect構造体)
         
     | 
| 
      
 412 
     | 
    
         
            +
                def part_resize_to(w, h)
         
     | 
| 
      
 413 
     | 
    
         
            +
                  return adjust_part(
         
     | 
| 
      
 414 
     | 
    
         
            +
                           self.ox,
         
     | 
| 
      
 415 
     | 
    
         
            +
                           self.oy,
         
     | 
| 
      
 416 
     | 
    
         
            +
                           w ? w : self.ow,
         
     | 
| 
      
 417 
     | 
    
         
            +
                           h ? h : self.oh
         
     | 
| 
      
 418 
     | 
    
         
            +
                         )
         
     | 
| 
      
 419 
     | 
    
         
            +
                end
         
     | 
| 
      
 420 
     | 
    
         
            +
             
     | 
| 
      
 421 
     | 
    
         
            +
                #=== スプライトの元画像の大きさを返す
         
     | 
| 
      
 422 
     | 
    
         
            +
                #返却値:: Size構造体インスタンス
         
     | 
| 
      
 423 
     | 
    
         
            +
                def image_size
         
     | 
| 
      
 424 
     | 
    
         
            +
                  return Size.new(self.bitmap.w,self.bitmap.h)
         
     | 
| 
      
 425 
     | 
    
         
            +
                end
         
     | 
| 
      
 426 
     | 
    
         
            +
             
     | 
| 
      
 427 
     | 
    
         
            +
                #=== スプライトの元画像の矩形を返す
         
     | 
| 
      
 428 
     | 
    
         
            +
                #返却値:: Rect構造体インスタンス
         
     | 
| 
      
 429 
     | 
    
         
            +
                def image_rect
         
     | 
| 
      
 430 
     | 
    
         
            +
                  return Rect.new(0,0,self.bitmap.w, self.bitmap.h)
         
     | 
| 
      
 431 
     | 
    
         
            +
                end
         
     | 
| 
      
 432 
     | 
    
         
            +
             
     | 
| 
       254 
433 
     | 
    
         
             
                #===画像の回転・拡大・縮小の中心座標を取得する
         
     | 
| 
       255 
434 
     | 
    
         
             
                #x方向の中心座標を取得する
         
     | 
| 
       256 
435 
     | 
    
         
             
                #返却値:: 中心座標。
         
     | 
| 
         @@ -328,7 +507,7 @@ module Miyako 
     | 
|
| 
       328 
507 
     | 
    
         
             
                def to_sprite
         
     | 
| 
       329 
508 
     | 
    
         
             
                  unit = @unit.dup
         
     | 
| 
       330 
509 
     | 
    
         
             
                  unit.bitmap = Bitmap.create(unit.bitmap.w, unit.bitmap.h)
         
     | 
| 
       331 
     | 
    
         
            -
                  sprite = Sprite.new(size 
     | 
| 
      
 510 
     | 
    
         
            +
                  sprite = Sprite.new(:size => [unit.bitmap.w, unit.bitmap.h], :type => :ac)
         
     | 
| 
       332 
511 
     | 
    
         
             
                  Drawing.fill(sprite, [0,0,0])
         
     | 
| 
       333 
512 
     | 
    
         
             
                  Bitmap.ck_to_ac!(sprite, [0,0,0])
         
     | 
| 
       334 
513 
     | 
    
         
             
                  Bitmap.blit_aa(self, sprite, 0, 0)
         
     | 
| 
         @@ -383,6 +562,94 @@ module Miyako 
     | 
|
| 
       383 
562 
     | 
    
         
             
                def render_to(dst)
         
     | 
| 
       384 
563 
     | 
    
         
             
                end
         
     | 
| 
       385 
564 
     | 
    
         | 
| 
      
 565 
     | 
    
         
            +
                #===インスタンスの内容を画面に描画する
         
     | 
| 
      
 566 
     | 
    
         
            +
                #現在の画像を、現在の状態で描画するよう指示する
         
     | 
| 
      
 567 
     | 
    
         
            +
                #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
         
     | 
| 
      
 568 
     | 
    
         
            +
                #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
         
     | 
| 
      
 569 
     | 
    
         
            +
                #ブロックの引数は、|インスタンスのSpriteUnit, 画面のSpriteUnit|となる。
         
     | 
| 
      
 570 
     | 
    
         
            +
                #visibleメソッドの値がfalseのときは描画されない。
         
     | 
| 
      
 571 
     | 
    
         
            +
                #返却値:: 自分自身を返す
         
     | 
| 
      
 572 
     | 
    
         
            +
                def render_xy(x,y)
         
     | 
| 
      
 573 
     | 
    
         
            +
                end
         
     | 
| 
      
 574 
     | 
    
         
            +
             
     | 
| 
      
 575 
     | 
    
         
            +
                #===インスタンスの内容を別のインスタンスに描画する
         
     | 
| 
      
 576 
     | 
    
         
            +
                #転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。
         
     | 
| 
      
 577 
     | 
    
         
            +
                #画面の描画範囲は、src側SpriteUnitの(x,y)を起点に設定にする。
         
     | 
| 
      
 578 
     | 
    
         
            +
                #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
         
     | 
| 
      
 579 
     | 
    
         
            +
                #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
         
     | 
| 
      
 580 
     | 
    
         
            +
                #ブロックの引数は、|インスタンスのSpriteUnit,転送先のSpriteUnit|となる。
         
     | 
| 
      
 581 
     | 
    
         
            +
                #visibleメソッドの値がfalseのときは描画されない。
         
     | 
| 
      
 582 
     | 
    
         
            +
                #_dst_:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
         
     | 
| 
      
 583 
     | 
    
         
            +
                #返却値:: 自分自身を返す
         
     | 
| 
      
 584 
     | 
    
         
            +
                def render_xy_to(dst,x,y)
         
     | 
| 
      
 585 
     | 
    
         
            +
                end
         
     | 
| 
      
 586 
     | 
    
         
            +
             
     | 
| 
      
 587 
     | 
    
         
            +
                #===インスタンスの内容を画面に描画する
         
     | 
| 
      
 588 
     | 
    
         
            +
                #現在の画像を、現在の状態で描画するよう指示する
         
     | 
| 
      
 589 
     | 
    
         
            +
                #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
         
     | 
| 
      
 590 
     | 
    
         
            +
                #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
         
     | 
| 
      
 591 
     | 
    
         
            +
                #ブロックの引数は、|インスタンスのSpriteUnit, 画面のSpriteUnit|となる。
         
     | 
| 
      
 592 
     | 
    
         
            +
                #visibleメソッドの値がfalseのときは描画されない。
         
     | 
| 
      
 593 
     | 
    
         
            +
                #返却値:: 自分自身を返す
         
     | 
| 
      
 594 
     | 
    
         
            +
                def render_rect(rect)
         
     | 
| 
      
 595 
     | 
    
         
            +
                end
         
     | 
| 
      
 596 
     | 
    
         
            +
             
     | 
| 
      
 597 
     | 
    
         
            +
                #===インスタンスの内容を別のインスタンスに描画する
         
     | 
| 
      
 598 
     | 
    
         
            +
                #転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。
         
     | 
| 
      
 599 
     | 
    
         
            +
                #画面の描画範囲は、src側SpriteUnitの(x,y)を起点に設定にする。
         
     | 
| 
      
 600 
     | 
    
         
            +
                #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
         
     | 
| 
      
 601 
     | 
    
         
            +
                #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
         
     | 
| 
      
 602 
     | 
    
         
            +
                #ブロックの引数は、|インスタンスのSpriteUnit,転送先のSpriteUnit|となる。
         
     | 
| 
      
 603 
     | 
    
         
            +
                #visibleメソッドの値がfalseのときは描画されない。
         
     | 
| 
      
 604 
     | 
    
         
            +
                #_dst_:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
         
     | 
| 
      
 605 
     | 
    
         
            +
                #返却値:: 自分自身を返す
         
     | 
| 
      
 606 
     | 
    
         
            +
                def render_rect_to(dst,rect)
         
     | 
| 
      
 607 
     | 
    
         
            +
                end
         
     | 
| 
      
 608 
     | 
    
         
            +
             
     | 
| 
      
 609 
     | 
    
         
            +
                #===インスタンスの内容を画面に描画する
         
     | 
| 
      
 610 
     | 
    
         
            +
                #現在の画像を、現在の状態で描画するよう指示する
         
     | 
| 
      
 611 
     | 
    
         
            +
                #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
         
     | 
| 
      
 612 
     | 
    
         
            +
                #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
         
     | 
| 
      
 613 
     | 
    
         
            +
                #ブロックの引数は、|インスタンスのSpriteUnit, 画面のSpriteUnit|となる。
         
     | 
| 
      
 614 
     | 
    
         
            +
                #visibleメソッドの値がfalseのときは描画されない。
         
     | 
| 
      
 615 
     | 
    
         
            +
                #返却値:: 自分自身を返す
         
     | 
| 
      
 616 
     | 
    
         
            +
                def render_rect2(rect)
         
     | 
| 
      
 617 
     | 
    
         
            +
                end
         
     | 
| 
      
 618 
     | 
    
         
            +
             
     | 
| 
      
 619 
     | 
    
         
            +
                #===インスタンスの内容を別のインスタンスに描画する
         
     | 
| 
      
 620 
     | 
    
         
            +
                #転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。
         
     | 
| 
      
 621 
     | 
    
         
            +
                #画面の描画範囲は、src側SpriteUnitの(x,y)を起点に設定にする。
         
     | 
| 
      
 622 
     | 
    
         
            +
                #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
         
     | 
| 
      
 623 
     | 
    
         
            +
                #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
         
     | 
| 
      
 624 
     | 
    
         
            +
                #ブロックの引数は、|インスタンスのSpriteUnit,転送先のSpriteUnit|となる。
         
     | 
| 
      
 625 
     | 
    
         
            +
                #visibleメソッドの値がfalseのときは描画されない。
         
     | 
| 
      
 626 
     | 
    
         
            +
                #_dst_:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
         
     | 
| 
      
 627 
     | 
    
         
            +
                #返却値:: 自分自身を返す
         
     | 
| 
      
 628 
     | 
    
         
            +
                def render_rect2_to(dst,rect)
         
     | 
| 
      
 629 
     | 
    
         
            +
                end
         
     | 
| 
      
 630 
     | 
    
         
            +
             
     | 
| 
      
 631 
     | 
    
         
            +
                #===インスタンスの内容を画面に描画する
         
     | 
| 
      
 632 
     | 
    
         
            +
                #現在の画像を、現在の状態で描画するよう指示する
         
     | 
| 
      
 633 
     | 
    
         
            +
                #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
         
     | 
| 
      
 634 
     | 
    
         
            +
                #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
         
     | 
| 
      
 635 
     | 
    
         
            +
                #ブロックの引数は、|インスタンスのSpriteUnit, 画面のSpriteUnit|となる。
         
     | 
| 
      
 636 
     | 
    
         
            +
                #visibleメソッドの値がfalseのときは描画されない。
         
     | 
| 
      
 637 
     | 
    
         
            +
                #返却値:: 自分自身を返す
         
     | 
| 
      
 638 
     | 
    
         
            +
                def render_rect_xy(rect,x,y)
         
     | 
| 
      
 639 
     | 
    
         
            +
                end
         
     | 
| 
      
 640 
     | 
    
         
            +
             
     | 
| 
      
 641 
     | 
    
         
            +
                #===インスタンスの内容を別のインスタンスに描画する
         
     | 
| 
      
 642 
     | 
    
         
            +
                #転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。
         
     | 
| 
      
 643 
     | 
    
         
            +
                #画面の描画範囲は、src側SpriteUnitの(x,y)を起点に設定にする。
         
     | 
| 
      
 644 
     | 
    
         
            +
                #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
         
     | 
| 
      
 645 
     | 
    
         
            +
                #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
         
     | 
| 
      
 646 
     | 
    
         
            +
                #ブロックの引数は、|インスタンスのSpriteUnit,転送先のSpriteUnit|となる。
         
     | 
| 
      
 647 
     | 
    
         
            +
                #visibleメソッドの値がfalseのときは描画されない。
         
     | 
| 
      
 648 
     | 
    
         
            +
                #_dst_:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
         
     | 
| 
      
 649 
     | 
    
         
            +
                #返却値:: 自分自身を返す
         
     | 
| 
      
 650 
     | 
    
         
            +
                def render_rect_xy_to(dst,rect,x,y)
         
     | 
| 
      
 651 
     | 
    
         
            +
                end
         
     | 
| 
      
 652 
     | 
    
         
            +
             
     | 
| 
       386 
653 
     | 
    
         
             
                #===インスタンスの内容を画面に描画する(回転/拡大/縮小/鏡像付き)
         
     | 
| 
       387 
654 
     | 
    
         
             
                #転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。回転の中心はsrc側(ox,oy)を起点に、src側(cx,cy)が中心になるように設定する。
         
     | 
| 
       388 
655 
     | 
    
         
             
                #画面の描画範囲は、src側SpriteUnitの(x,y)を起点に、画面側SpriteUnitの(cx,cy)が中心になるように設定にする。
         
     | 
| 
         @@ -30,7 +30,7 @@ module Miyako 
     | 
|
| 
       30 
30 
     | 
    
         
             
                include SingleEnumerable
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
32 
     | 
    
         
             
                attr_accessor :visible #レンダリングの可否(true->描画 false->非描画)
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
       34 
34 
     | 
    
         
             
                #===インスタンスの作成
         
     | 
| 
       35 
35 
     | 
    
         
             
                #アニメーションを行うための初期設定を行う。
         
     | 
| 
       36 
36 
     | 
    
         
             
                #アニメーションは2種類の方法があり、
         
     | 
| 
         @@ -219,7 +219,7 @@ module Miyako 
     | 
|
| 
       219 
219 
     | 
    
         
             
                  @now.move_to!(@slist[@plist[@pnum]].x + @move_offset[@pnum][0],
         
     | 
| 
       220 
220 
     | 
    
         
             
                                @slist[@plist[@pnum]].y + @move_offset[@pnum][1])
         
     | 
| 
       221 
221 
     | 
    
         
             
                end
         
     | 
| 
       222 
     | 
    
         
            -
             
     | 
| 
      
 222 
     | 
    
         
            +
             
     | 
| 
       223 
223 
     | 
    
         
             
                #===複写時に呼び出されるメソッド
         
     | 
| 
       224 
224 
     | 
    
         
             
                #複写と同時に、本インスタンスに対するスナップの関係を解消するが、
         
     | 
| 
       225 
225 
     | 
    
         
             
                #新しいパターンスプライトとスナップをやり直す
         
     | 
| 
         @@ -235,25 +235,25 @@ module Miyako 
     | 
|
| 
       235 
235 
     | 
    
         
             
                end
         
     | 
| 
       236 
236 
     | 
    
         | 
| 
       237 
237 
     | 
    
         
             
                attr_accessor :visible
         
     | 
| 
       238 
     | 
    
         
            -
             
     | 
| 
      
 238 
     | 
    
         
            +
             
     | 
| 
       239 
239 
     | 
    
         
             
                #=== 現在表示しているスプライトの x 座標の値を取得する
         
     | 
| 
       240 
240 
     | 
    
         
             
                #返却値:: x 座標の値
         
     | 
| 
       241 
241 
     | 
    
         
             
                def x
         
     | 
| 
       242 
242 
     | 
    
         
             
                  return @now.x
         
     | 
| 
       243 
243 
     | 
    
         
             
                end
         
     | 
| 
       244 
     | 
    
         
            -
             
     | 
| 
      
 244 
     | 
    
         
            +
             
     | 
| 
       245 
245 
     | 
    
         
             
                #=== 現在表示しているスプライトの y 座標の値を取得する
         
     | 
| 
       246 
246 
     | 
    
         
             
                #返却値:: y 座標の値
         
     | 
| 
       247 
247 
     | 
    
         
             
                def y
         
     | 
| 
       248 
248 
     | 
    
         
             
                  return @now.y
         
     | 
| 
       249 
249 
     | 
    
         
             
                end
         
     | 
| 
       250 
     | 
    
         
            -
             
     | 
| 
      
 250 
     | 
    
         
            +
             
     | 
| 
       251 
251 
     | 
    
         
             
                #=== 現在表示しているスプライトの幅を取得する
         
     | 
| 
       252 
252 
     | 
    
         
             
                #返却値:: 現在表示しているスプライトの幅(ピクセル単位)
         
     | 
| 
       253 
253 
     | 
    
         
             
                def w
         
     | 
| 
       254 
254 
     | 
    
         
             
                  return @now.ow
         
     | 
| 
       255 
255 
     | 
    
         
             
                end
         
     | 
| 
       256 
     | 
    
         
            -
             
     | 
| 
      
 256 
     | 
    
         
            +
             
     | 
| 
       257 
257 
     | 
    
         
             
                #=== 現在表示しているスプライトの高さを取得する
         
     | 
| 
       258 
258 
     | 
    
         
             
                #返却値:: 現在表示しているスプライトの高さ(ピクセル単位)
         
     | 
| 
       259 
259 
     | 
    
         
             
                def h
         
     | 
| 
         @@ -291,6 +291,12 @@ module Miyako 
     | 
|
| 
       291 
291 
     | 
    
         
             
                  return @plist[@pnum]
         
     | 
| 
       292 
292 
     | 
    
         
             
                end
         
     | 
| 
       293 
293 
     | 
    
         | 
| 
      
 294 
     | 
    
         
            +
                #===アニメーションのパターン数を取得する
         
     | 
| 
      
 295 
     | 
    
         
            +
                #返却値:: パターン数(0以上の整数)
         
     | 
| 
      
 296 
     | 
    
         
            +
                def patterns
         
     | 
| 
      
 297 
     | 
    
         
            +
                  return @pats
         
     | 
| 
      
 298 
     | 
    
         
            +
                end
         
     | 
| 
      
 299 
     | 
    
         
            +
             
     | 
| 
       294 
300 
     | 
    
         
             
                #===キャラクター番号を設定する
         
     | 
| 
       295 
301 
     | 
    
         
             
            		#キャラクター番号(アニメーションさせるときに表示させるパターン群インデックス)
         
     | 
| 
       296 
302 
     | 
    
         
             
            		#を設定する。範囲外のキャラクター番号が設定された時は何も行わない
         
     | 
| 
         @@ -316,7 +322,13 @@ module Miyako 
     | 
|
| 
       316 
322 
     | 
    
         
             
                def character
         
     | 
| 
       317 
323 
     | 
    
         
             
                  return @cnum
         
     | 
| 
       318 
324 
     | 
    
         
             
                end
         
     | 
| 
       319 
     | 
    
         
            -
             
     | 
| 
      
 325 
     | 
    
         
            +
             
     | 
| 
      
 326 
     | 
    
         
            +
                #===キャラクター数を取得する
         
     | 
| 
      
 327 
     | 
    
         
            +
                #返却値:: キャラクター数(0以上の整数)
         
     | 
| 
      
 328 
     | 
    
         
            +
                def characters
         
     | 
| 
      
 329 
     | 
    
         
            +
                  return @chrs
         
     | 
| 
      
 330 
     | 
    
         
            +
                end
         
     | 
| 
      
 331 
     | 
    
         
            +
             
     | 
| 
       320 
332 
     | 
    
         
             
                #===アニメーションを開始する
         
     | 
| 
       321 
333 
     | 
    
         
             
                #パターンがリセットされていないときは、一時停止から復帰した時と同じ動作をする
         
     | 
| 
       322 
334 
     | 
    
         
             
                #返却値:: 自分自身
         
     | 
| 
         @@ -382,7 +394,7 @@ module Miyako 
     | 
|
| 
       382 
394 
     | 
    
         
             
                  @cnt = @waits[@plist[@pnum]]
         
     | 
| 
       383 
395 
     | 
    
         
             
                  return true
         
     | 
| 
       384 
396 
     | 
    
         
             
                end
         
     | 
| 
       385 
     | 
    
         
            -
             
     | 
| 
      
 397 
     | 
    
         
            +
             
     | 
| 
       386 
398 
     | 
    
         
             
                def update_wait_counter #:nodoc:
         
     | 
| 
       387 
399 
     | 
    
         
             
                  return false if @cnt.waiting?
         
     | 
| 
       388 
400 
     | 
    
         
             
                  @pnum = (@pnum + 1) % @pats
         
     | 
| 
         @@ -430,13 +442,13 @@ module Miyako 
     | 
|
| 
       430 
442 
     | 
    
         
             
                def to_unit
         
     | 
| 
       431 
443 
     | 
    
         
             
                  return @now.dup
         
     | 
| 
       432 
444 
     | 
    
         
             
                end
         
     | 
| 
       433 
     | 
    
         
            -
             
     | 
| 
      
 445 
     | 
    
         
            +
             
     | 
| 
       434 
446 
     | 
    
         
             
                #=== 現在実行中のパターンの画像を返す
         
     | 
| 
       435 
447 
     | 
    
         
             
                #返却値:: 現在表示している画像(bitmap)
         
     | 
| 
       436 
448 
     | 
    
         
             
                def bitmap
         
     | 
| 
       437 
449 
     | 
    
         
             
                  return @now.bitmap
         
     | 
| 
       438 
450 
     | 
    
         
             
                end
         
     | 
| 
       439 
     | 
    
         
            -
             
     | 
| 
      
 451 
     | 
    
         
            +
             
     | 
| 
       440 
452 
     | 
    
         
             
                #===現在実行中のパターンの元になったインスタンスを返す
         
     | 
| 
       441 
453 
     | 
    
         
             
                #取得するパターンは、元になったインスタンスのto_spriteメソッドを呼び出した時の値となる
         
     | 
| 
       442 
454 
     | 
    
         
             
                #引数1個のブロックを渡せば、スプライトに補正をかけることが出来る
         
     | 
| 
         @@ -450,7 +462,7 @@ module Miyako 
     | 
|
| 
       450 
462 
     | 
    
         
             
                def rect
         
     | 
| 
       451 
463 
     | 
    
         
             
                  return Rect.new(@now.x, @now.y, @now.ow, @now.oh)
         
     | 
| 
       452 
464 
     | 
    
         
             
                end
         
     | 
| 
       453 
     | 
    
         
            -
             
     | 
| 
      
 465 
     | 
    
         
            +
             
     | 
| 
       454 
466 
     | 
    
         
             
                #===現在表示しているスプライトの最大の大きさを矩形で取得する
         
     | 
| 
       455 
467 
     | 
    
         
             
                #現在のパターンの大きさと同じため、rectメソッドの値と同一となる
         
     | 
| 
       456 
468 
     | 
    
         
             
                #返却値:: 生成された矩形(Rect構造体のインスタンス)
         
     |