cyross-ruby-miyako 2.0.5.1.0 → 2.1.0

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.
Files changed (91) hide show
  1. data/README +1092 -929
  2. data/Rakefile +7 -7
  3. data/defines.h +144 -144
  4. data/extern.h +29 -29
  5. data/install_miyako.rb +87 -87
  6. data/lib/Miyako/API/audio.rb +572 -198
  7. data/lib/Miyako/API/basic_data.rb +825 -573
  8. data/lib/Miyako/API/bitmap.rb +534 -507
  9. data/lib/Miyako/API/choices.rb +481 -475
  10. data/lib/Miyako/API/collision.rb +486 -460
  11. data/lib/Miyako/API/diagram.rb +586 -561
  12. data/lib/Miyako/API/drawing.rb +151 -151
  13. data/lib/Miyako/API/exceptions.rb +105 -0
  14. data/lib/Miyako/API/fixedmap.rb +462 -428
  15. data/lib/Miyako/API/font.rb +430 -403
  16. data/lib/Miyako/API/input.rb +456 -447
  17. data/lib/Miyako/API/layout.rb +636 -433
  18. data/lib/Miyako/API/map.rb +583 -529
  19. data/lib/Miyako/API/map_event.rb +222 -198
  20. data/lib/Miyako/API/modules.rb +357 -109
  21. data/lib/Miyako/API/movie.rb +166 -154
  22. data/lib/Miyako/API/parts.rb +276 -189
  23. data/lib/Miyako/API/plane.rb +205 -166
  24. data/lib/Miyako/API/screen.rb +341 -325
  25. data/lib/Miyako/API/shape.rb +443 -443
  26. data/lib/Miyako/API/sprite.rb +771 -752
  27. data/lib/Miyako/API/sprite_animation.rb +490 -481
  28. data/lib/Miyako/API/sprite_list.rb +1135 -0
  29. data/lib/Miyako/API/spriteunit.rb +168 -147
  30. data/lib/Miyako/API/story.rb +350 -300
  31. data/lib/Miyako/API/textbox.rb +770 -725
  32. data/lib/Miyako/API/utility.rb +419 -388
  33. data/lib/Miyako/API/viewport.rb +189 -139
  34. data/lib/Miyako/API/yuki.rb +1226 -996
  35. data/lib/Miyako/EXT/miyako_cairo.rb +62 -62
  36. data/lib/Miyako/EXT/raster_scroll.rb +138 -138
  37. data/lib/Miyako/EXT/slides.rb +157 -157
  38. data/lib/Miyako/miyako.rb +201 -171
  39. data/lib/Miyako/miyako_require_only.rb +35 -0
  40. data/miyako_basicdata.c +590 -590
  41. data/miyako_bitmap.c +1225 -1225
  42. data/miyako_collision.c +403 -403
  43. data/miyako_drawing.c +187 -187
  44. data/miyako_font.c +334 -334
  45. data/miyako_hsv.c +830 -830
  46. data/miyako_input_audio.c +254 -0
  47. data/miyako_layout.c +191 -191
  48. data/miyako_no_katana.c +1078 -1074
  49. data/miyako_sprite2.c +431 -0
  50. data/miyako_transform.c +438 -438
  51. data/miyako_utility.c +288 -288
  52. data/sample/Animation1/m1ku.rb +68 -68
  53. data/sample/Animation2/lex.rb +96 -96
  54. data/sample/Diagram_sample/diagram_sample_yuki2.rb +328 -386
  55. data/sample/Room3/blue.rb +297 -297
  56. data/sample/Room3/ending.rb +180 -180
  57. data/sample/Room3/green.rb +220 -220
  58. data/sample/Room3/main.rb +119 -119
  59. data/sample/Room3/main_component.rb +59 -59
  60. data/sample/Room3/red.rb +227 -227
  61. data/sample/Room3/room3.rb +25 -27
  62. data/sample/Room3/title.rb +184 -184
  63. data/sample/ball_action_sample.rb +204 -204
  64. data/sample/blit_rop.rb +70 -70
  65. data/sample/cairo_sample.rb +25 -25
  66. data/sample/circle_collision_test.rb +66 -66
  67. data/sample/collision_test.rb +33 -33
  68. data/sample/collision_test2.rb +108 -108
  69. data/sample/fixed_map_test/fixed_map_sample.rb +140 -140
  70. data/sample/fixed_map_test/readme.txt +72 -72
  71. data/sample/map_test/chara.rb +58 -58
  72. data/sample/map_test/main_parts.rb +69 -69
  73. data/sample/map_test/main_scene.rb +153 -153
  74. data/sample/map_test/map_manager.rb +75 -75
  75. data/sample/map_test/map_test.rb +23 -23
  76. data/sample/map_test/oasis.rb +71 -71
  77. data/sample/map_test/readme.txt +89 -89
  78. data/sample/map_test/route.rb +157 -157
  79. data/sample/map_test/town.rb +74 -74
  80. data/sample/polygon_test.rb +35 -35
  81. data/sample/rasterscroll.rb +24 -24
  82. data/sample/takahashi.rb +42 -42
  83. data/sample/textbox_sample.rb +189 -189
  84. data/sample/transform.rb +54 -54
  85. data/sample/utility_test.rb +73 -73
  86. data/sample/utility_test2.rb +61 -61
  87. data/sample/utility_test3.rb +64 -64
  88. data/sample/utility_test4.rb +73 -73
  89. data/uninstall_miyako.rb +19 -19
  90. data/win/miyako_no_katana.so +0 -0
  91. metadata +7 -2
@@ -1,189 +1,276 @@
1
- # -*- encoding: utf-8 -*-
2
- =begin
3
- --
4
- Miyako v2.0
5
- Copyright (C) 2007-2009 Cyross Makoto
6
-
7
- This library is free software; you can redistribute it and/or
8
- modify it under the terms of the GNU Lesser General Public
9
- License as published by the Free Software Foundation; either
10
- version 2.1 of the License, or (at your option) any later version.
11
-
12
- This library is distributed in the hope that it will be useful,
13
- but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- Lesser General Public License for more details.
16
-
17
- You should have received a copy of the GNU Lesser General Public
18
- License along with this library; if not, write to the Free Software
19
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
- ++
21
- =end
22
-
23
- module Miyako
24
- #==パーツ構成クラス
25
- #複数のスプライト・アニメーションをまとめて一つの部品として構成できるクラス
26
- #
27
- #最初に、基準となる「レイアウト空間(LayoutSpaceクラスのインスタンス)」を登録し、その上にパーツを加える
28
- #
29
- #すべてのパーツは、すべてレイアウト空間にスナップされる
30
- #(登録したパーツのレイアウト情報が変わることに注意)
31
- class Parts
32
- include Enumerable
33
- include Layout
34
- extend Forwardable
35
-
36
- attr_accessor :visible #レンダリングの可否(true->描画 false->非描画)
37
-
38
- #===Partsクラスインスタンスを生成
39
- #_size_:: パーツ全体の大きさ。Size構造体のインスタンスもしくは要素数が2の配列
40
- def initialize(size)
41
- @parts = {}
42
- @parts_list = []
43
- @visible = true
44
-
45
- init_layout
46
- set_layout_size(size[0], size[1])
47
- end
48
-
49
- #===nameで示した補助パーツを返す
50
- #_name_:: 補助パーツに与えた名前(シンボル)
51
- #返却値:: 自分自身
52
- def [](name)
53
- return @parts[name]
54
- end
55
-
56
- #===補助パーツvalueをnameに割り当てる
57
- #_name_:: 補助パーツに与える名前(シンボル)
58
- #_value_:: 補助パーツのインスタンス(スプライト、テキストボックス、アニメーション、レイアウトボックスなど)
59
- #返却値:: 自分自身
60
- def []=(name, value)
61
- @parts_list.push(name)
62
- @parts[name] = value
63
- @parts[name].snap(self)
64
- return self
65
- end
66
-
67
- #===すべての補助パーツの一覧を配列で返す
68
- #返却値:: パーツ名の配列(登録順)
69
- def parts
70
- return @parts_list
71
- end
72
-
73
- #===指定の補助パーツを除外する
74
- #_name_:: 除外するパーツ名(シンボル)
75
- #返却値:: 自分自身
76
- def remove(name)
77
- self.delete_snap_child(@parts[name])
78
- @parts.delete(name)
79
- return self
80
- end
81
-
82
- #===メインパーツと補助パーツに対してブロックを評価する
83
- #返却値:: 自分自身
84
- def each
85
- @parts_list.each{|k| yield @parts[k] }
86
- return self
87
- end
88
-
89
- #===メインパーツと補助パーツのすべてのアニメーションを開始する
90
- #返却値:: 自分自身
91
- def start
92
- self.each{|parts| parts.start }
93
- return self
94
- end
95
-
96
- #===メインパーツと補助パーツのすべてのアニメーションを停止する
97
- #返却値:: 自分自身
98
- def stop
99
- self.each{|parts| parts.stop }
100
- return self
101
- end
102
-
103
- #===メインパーツと補助パーツのすべてのアニメーションを更新する
104
- #返却値:: 自分自身
105
- def update_animation
106
- self.each{|parts| parts.update_animation }
107
- end
108
-
109
- #===メインパーツと補助パーツのすべてのアニメーションを、最初のパターンに巻き戻す
110
- #返却値:: 自分自身
111
- def reset
112
- self.each{|parts| parts.reset }
113
- return self
114
- end
115
-
116
- def update #:nodoc:
117
- self.each{|parts| parts.update }
118
- return self
119
- end
120
-
121
- #===スプライトに変換した画像を表示する
122
- #すべてのパーツを貼り付けた、1枚のスプライトを返す
123
- #引数1個のブロックを渡せば、スプライトに補正をかけることが出来る
124
- #返却値:: 描画したスプライト
125
- def to_sprite
126
- rect = self.broad_rect
127
- sprite = Sprite.new(:size=>rect.to_a[2,2], :type=>:ac)
128
- Drawing.fill(sprite, [0,0,0])
129
- Bitmap.ck_to_ac!(sprite, [0,0,0])
130
- self.render_to(sprite){|sunit, dunit| sunit.x -= rect.x; sunit.y -= rect.y }
131
- yield sprite if block_given?
132
- return sprite
133
- end
134
-
135
- #===SpriteUnit構造体を生成する
136
- #いったんSpriteインスタンスを作成し、それをもとにSpriteUnit構造体を生成する。
137
- #返却値:: 生成したSpriteUnit構造体
138
- def to_unit
139
- return self.to_sprite.to_unit
140
- end
141
-
142
- #===現在の画面の最大の大きさを矩形で取得する
143
- #各パーツの位置により、取得できる矩形の大きさが変わる
144
- #但し、パーツ未登録の時は、インスタンス生成時の大きさから矩形を生成する
145
- #返却値:: 生成された矩形(Rect構造体のインスタンス)
146
- def broad_rect
147
- rect = self.rect.to_a
148
- return self.rect if @parts_list.length == 0
149
- rect_list = rect.zip(*(self.map{|parts| parts.broad_rect.to_a}))
150
- # width -> right
151
- rect_list[2] = rect_list[2].zip(rect_list[0]).map{|xw| xw[0] + xw[1]}
152
- # height -> bottom
153
- rect_list[3] = rect_list[3].zip(rect_list[1]).map{|xw| xw[0] + xw[1]}
154
- x, y = rect_list[0].min, rect_list[1].min
155
- return Rect.new(x, y, rect_list[2].max - x, rect_list[3].max - y)
156
- end
157
-
158
- #===パーツに登録しているインスタンスを解放する
159
- def dispose
160
- @parts_list.clear
161
- @parts_list = nil
162
- @parts.clear
163
- @parts = nil
164
- end
165
-
166
- #===パーツを画面に描画する
167
- #各パーツの描画範囲は、それぞれのSpriteUnitの(ox,oy)を起点にする。
168
- #画面の描画範囲は、src側SpriteUnitの(x,y)を起点に、各パーツを貼り付ける。
169
- #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
170
- #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
171
- #ブロックの引数は、|パーツのSpriteUnit|となる。
172
- #デフォルトでは、描画順は登録順となる。順番を変更したいときは、renderメソッドをオーバーライドする必要がある
173
- #visibleメソッドの値がfalseのときは描画されない。
174
- def render
175
- end
176
-
177
- #===パーツを画面に描画する
178
- #各パーツの描画範囲は、それぞれのSpriteUnitの(ox,oy)を起点にする。
179
- #転送先の描画範囲は、src側SpriteUnitの(x,y)を起点に、タイリングを行いながら貼り付ける。
180
- #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
181
- #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
182
- #ブロックの引数は、|パーツのSpriteUnit|となる。
183
- #デフォルトでは、描画順は登録順となる。順番を変更したいときは、render_toメソッドをオーバーライドする必要がある
184
- #visibleメソッドの値がfalseのときは描画されない。
185
- #_dst_:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
186
- def render_to(dst)
187
- end
188
- end
189
- end
1
+ # -*- encoding: utf-8 -*-
2
+ =begin
3
+ --
4
+ Miyako v2.1
5
+ Copyright (C) 2007-2009 Cyross Makoto
6
+
7
+ This library is free software; you can redistribute it and/or
8
+ modify it under the terms of the GNU Lesser General Public
9
+ License as published by the Free Software Foundation; either
10
+ version 2.1 of the License, or (at your option) any later version.
11
+
12
+ This library is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ Lesser General Public License for more details.
16
+
17
+ You should have received a copy of the GNU Lesser General Public
18
+ License along with this library; if not, write to the Free Software
19
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
+ ++
21
+ =end
22
+
23
+ module Miyako
24
+ #==パーツ構成クラス
25
+ #複数のスプライト・アニメーションをまとめて一つの部品として構成できるクラス
26
+ #
27
+ #最初に、基準となる「レイアウト空間(LayoutSpaceクラスのインスタンス)」を登録し、その上にパーツを加える
28
+ #
29
+ #すべてのパーツは、すべてレイアウト空間にスナップされる
30
+ #(登録したパーツのレイアウト情報が変わることに注意)
31
+ class Parts
32
+ include SpriteBase
33
+ include Animation
34
+ include Enumerable
35
+ include Layout
36
+ extend Forwardable
37
+
38
+ attr_accessor :visible #レンダリングの可否(true->描画 false->非描画)
39
+
40
+ #===Partsクラスインスタンスを生成
41
+ #_size_:: パーツ全体の大きさ。Size構造体のインスタンスもしくは要素数が2の配列
42
+ def initialize(size)
43
+ @parts = {}
44
+ @parts_list = []
45
+ @visible = true
46
+
47
+ init_layout
48
+ set_layout_size(size[0], size[1])
49
+ end
50
+
51
+ def initialize_copy(obj) #:nodoc:
52
+ copy_layout
53
+ @parts_list = []
54
+ @parts = {}
55
+ obj.names.each{|name| self[name] = obj[name].deep_dup }
56
+ self
57
+ end
58
+
59
+ #===nameで示した補助パーツを返す
60
+ #_name_:: 補助パーツに与えた名前(シンボル)
61
+ #返却値:: 自分自身
62
+ def [](name)
63
+ return @parts[name]
64
+ end
65
+
66
+ #===補助パーツvalueをnameに割り当てる
67
+ #_name_:: 補助パーツに与える名前(シンボル)
68
+ #_value_:: 補助パーツのインスタンス(スプライト、テキストボックス、アニメーション、レイアウトボックスなど)
69
+ #返却値:: 自分自身
70
+ def []=(name, value)
71
+ if @parts_list.include?(name)
72
+ @parts_list.delete(name)
73
+ end
74
+ @parts_list.push(name)
75
+ @parts[name] = value
76
+ @parts[name].snap(self)
77
+ return self
78
+ end
79
+
80
+ #===すべての補助パーツの一覧を配列で返す
81
+ #返却値:: パーツ名の配列(登録順)
82
+ def parts
83
+ return @parts_list
84
+ end
85
+
86
+ #===すべての補助パーツの一覧を配列で返す
87
+ #返却値:: パーツ名の配列(登録順)
88
+ def names
89
+ return @parts_list
90
+ end
91
+
92
+ #===指定の補助パーツを除外する
93
+ #_name_:: 除外するパーツ名(シンボル)
94
+ #返却値:: 自分自身
95
+ def remove(name)
96
+ self.delete_snap_child(@parts[name])
97
+ @parts_list.delete(name)
98
+ @parts.delete(name)
99
+ return self
100
+ end
101
+
102
+ #===指定の補助パーツを除外する
103
+ #_name_:: 除外するパーツ名(シンボル)
104
+ #返却値:: 自分自身
105
+ def delete(name)
106
+ return self.remve(name)
107
+ end
108
+
109
+ #===メインパーツと補助パーツに対してブロックを評価する
110
+ #返却値:: 自分自身
111
+ def each
112
+ @parts_list.each{|k| yield @parts[k] }
113
+ return self
114
+ end
115
+
116
+ #===指定の名前の直前に名前を挿入する
117
+ #配列上で、スプライト名配列の指定の名前の前になるように名前を挿入する
118
+ #_key_:: 挿入先の名前。この名前の直前に挿入する
119
+ #_name_:: 挿入するスプライトの名前
120
+ #_value_:: (名前が未登録の時の)スプライト本体省略時はnil
121
+ #返却値:自分自身を返す
122
+ def insert(key, name, value = nil)
123
+ raise MiyakoValueError, "Illegal key! : #{key}" unless @parts_list.include?(key)
124
+ return self if key == name
125
+ if value
126
+ @parts[name] = value
127
+ else
128
+ raise MiyakoValueError, "name is not regist! : #{name}" unless @parts_list.include?(name)
129
+ end
130
+ @parts_list.delete(name) if @parts_list.include?(name)
131
+ @parts_list.insert(@parts_list.index(key), name)
132
+ self
133
+ end
134
+
135
+ #===指定の名前の直後に名前を挿入する
136
+ #配列上で、スプライト名配列の指定の名前の次の名前になるように名前を挿入する
137
+ #_key_:: 挿入先の名前。この名前の直後に挿入する
138
+ #_name_:: 挿入するスプライトの名前
139
+ #_value_:: (名前が未登録の時の)スプライト本体省略時はnil
140
+ #返却値:自分自身を返す
141
+ def insert_after(key, name, value = nil)
142
+ raise MiyakoValueError, "Illegal key! : #{key}" unless @parts_list.include?(key)
143
+ return self if key == name
144
+ if value
145
+ @parts[name] = value
146
+ else
147
+ raise MiyakoValueError, "name is not regist! : #{name}" unless @parts_list.include?(name)
148
+ end
149
+ @parts_list.delete(name) if @parts_list.include?(name)
150
+ @parts_list.insert(@parts_list.index(key)-@parts_list.length, name)
151
+ self
152
+ end
153
+
154
+ #===指定した要素の内容を入れ替える
155
+ #配列の先頭から順にrenderメソッドを呼び出す。
156
+ #描画するインスタンスは、SpriteBaseもしくはSpriteArrayモジュールを
157
+ #mixinしているクラスのインスタンスのみ
158
+ #_name1,name_:: 入れ替え対象の名前
159
+ #返却値:: 自分自身を帰す
160
+ def swap(name1, name2)
161
+ raise MiyakoValueError, "Illegal name! : idx1:#{name1}" unless @parts_list.include?(name1)
162
+ raise MiyakoValueError, "Illegal name! : idx2:#{name2}" unless @parts_list.include?(name2)
163
+ idx1 = @parts_list.index(name1)
164
+ idx2 = @parts_list.index(name2)
165
+ @parts_list[idx1], @parts_list[idx2] = @parts_list[idx2], @parts_list[idx1]
166
+ return self
167
+ end
168
+
169
+ #===名前の順番を反転する
170
+ #返却値:: 自分自身を帰す
171
+ def reverse!
172
+ @parts_list.reverse!
173
+ return self
174
+ end
175
+
176
+ #===メインパーツと補助パーツのすべてのアニメーションを開始する
177
+ #返却値:: 自分自身
178
+ def start
179
+ self.each{|parts| parts.start }
180
+ return self
181
+ end
182
+
183
+ #===メインパーツと補助パーツのすべてのアニメーションを停止する
184
+ #返却値:: 自分自身
185
+ def stop
186
+ self.each{|parts| parts.stop }
187
+ return self
188
+ end
189
+
190
+ #===メインパーツと補助パーツのすべてのアニメーションを更新する
191
+ #返却値:: 各パーツのupdate_animationの結果を配列として返す
192
+ def update_animation
193
+ self.map{|parts| parts.update_animation }
194
+ end
195
+
196
+ #===メインパーツと補助パーツのすべてのアニメーションを、最初のパターンに巻き戻す
197
+ #返却値:: 自分自身
198
+ def reset
199
+ self.each{|parts| parts.reset }
200
+ return self
201
+ end
202
+
203
+ def update #:nodoc:
204
+ self.each{|parts| parts.update }
205
+ return self
206
+ end
207
+
208
+ #===スプライトに変換した画像を表示する
209
+ #すべてのパーツを貼り付けた、1枚のスプライトを返す
210
+ #引数1個のブロックを渡せば、スプライトに補正をかけることが出来る
211
+ #返却値:: 描画したスプライト
212
+ def to_sprite
213
+ rect = self.broad_rect
214
+ sprite = Sprite.new(:size=>rect.to_a[2,2], :type=>:ac)
215
+ Drawing.fill(sprite, [0,0,0])
216
+ Bitmap.ck_to_ac!(sprite, [0,0,0])
217
+ self.render_to(sprite){|sunit, dunit| sunit.x -= rect.x; sunit.y -= rect.y }
218
+ yield sprite if block_given?
219
+ return sprite
220
+ end
221
+
222
+ #===SpriteUnit構造体を生成する
223
+ #いったんSpriteインスタンスを作成し、それをもとにSpriteUnit構造体を生成する。
224
+ #返却値:: 生成したSpriteUnit構造体
225
+ def to_unit
226
+ return self.to_sprite.to_unit
227
+ end
228
+
229
+ #===現在の画面の最大の大きさを矩形で取得する
230
+ #各パーツの位置により、取得できる矩形の大きさが変わる
231
+ #但し、パーツ未登録の時は、インスタンス生成時の大きさから矩形を生成する
232
+ #返却値:: 生成された矩形(Rect構造体のインスタンス)
233
+ def broad_rect
234
+ rect = self.rect.to_a
235
+ return self.rect if @parts_list.length == 0
236
+ rect_list = rect.zip(*(self.map{|parts| parts.broad_rect.to_a}))
237
+ # width -> right
238
+ rect_list[2] = rect_list[2].zip(rect_list[0]).map{|xw| xw[0] + xw[1]}
239
+ # height -> bottom
240
+ rect_list[3] = rect_list[3].zip(rect_list[1]).map{|xw| xw[0] + xw[1]}
241
+ x, y = rect_list[0].min, rect_list[1].min
242
+ return Rect.new(x, y, rect_list[2].max - x, rect_list[3].max - y)
243
+ end
244
+
245
+ #===パーツに登録しているインスタンスを解放する
246
+ def dispose
247
+ @parts_list.clear
248
+ @parts_list = nil
249
+ @parts.clear
250
+ @parts = nil
251
+ end
252
+
253
+ #===パーツを画面に描画する
254
+ #各パーツの描画範囲は、それぞれのSpriteUnitの(ox,oy)を起点にする。
255
+ #画面の描画範囲は、src側SpriteUnitの(x,y)を起点に、各パーツを貼り付ける。
256
+ #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
257
+ #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
258
+ #ブロックの引数は、|パーツのSpriteUnit|となる。
259
+ #デフォルトでは、描画順は登録順となる。順番を変更したいときは、renderメソッドをオーバーライドする必要がある
260
+ #visibleメソッドの値がfalseのときは描画されない。
261
+ def render
262
+ end
263
+
264
+ #===パーツを画面に描画する
265
+ #各パーツの描画範囲は、それぞれのSpriteUnitの(ox,oy)を起点にする。
266
+ #転送先の描画範囲は、src側SpriteUnitの(x,y)を起点に、タイリングを行いながら貼り付ける。
267
+ #ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る)
268
+ #(ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
269
+ #ブロックの引数は、|パーツのSpriteUnit|となる。
270
+ #デフォルトでは、描画順は登録順となる。順番を変更したいときは、render_toメソッドをオーバーライドする必要がある
271
+ #visibleメソッドの値がfalseのときは描画されない。
272
+ #_dst_:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
273
+ def render_to(dst)
274
+ end
275
+ end
276
+ end