ruby-miyako 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.
Files changed (72) hide show
  1. data/README +275 -20
  2. data/extern.h +21 -1
  3. data/install_miyako.rb +5 -3
  4. data/lib/Miyako/API/audio.rb +11 -6
  5. data/lib/Miyako/API/basic_data.rb +0 -985
  6. data/lib/Miyako/API/bitmap.rb +19 -22
  7. data/lib/Miyako/API/choices.rb +203 -69
  8. data/lib/Miyako/API/collision.rb +451 -9
  9. data/lib/Miyako/API/color.rb +177 -0
  10. data/lib/Miyako/API/diagram.rb +18 -20
  11. data/lib/Miyako/API/fixedmap.rb +207 -73
  12. data/lib/Miyako/API/font.rb +111 -18
  13. data/lib/Miyako/API/i_yuki.rb +1201 -0
  14. data/lib/Miyako/API/input.rb +65 -0
  15. data/lib/Miyako/API/layout.rb +41 -29
  16. data/lib/Miyako/API/map.rb +202 -157
  17. data/lib/Miyako/API/map_event.rb +86 -19
  18. data/lib/Miyako/API/map_struct.rb +268 -0
  19. data/lib/Miyako/API/modules.rb +136 -37
  20. data/lib/Miyako/API/movie.rb +8 -8
  21. data/lib/Miyako/API/parts.rb +63 -20
  22. data/lib/Miyako/API/plane.rb +4 -4
  23. data/lib/Miyako/API/screen.rb +16 -8
  24. data/lib/Miyako/API/sprite.rb +290 -23
  25. data/lib/Miyako/API/sprite_animation.rb +23 -11
  26. data/lib/Miyako/API/sprite_list.rb +406 -183
  27. data/lib/Miyako/API/story.rb +4 -65
  28. data/lib/Miyako/API/struct_point.rb +157 -0
  29. data/lib/Miyako/API/struct_rect.rb +233 -0
  30. data/lib/Miyako/API/struct_segment.rb +641 -0
  31. data/lib/Miyako/API/struct_size.rb +158 -0
  32. data/lib/Miyako/API/struct_square.rb +253 -0
  33. data/lib/Miyako/API/textbox.rb +49 -35
  34. data/lib/Miyako/API/viewport.rb +5 -5
  35. data/lib/Miyako/API/wait_counter.rb +350 -0
  36. data/lib/Miyako/API/yuki.rb +95 -60
  37. data/lib/Miyako/EXT/raster_scroll.rb +30 -8
  38. data/lib/Miyako/EXT/slides.rb +6 -6
  39. data/lib/Miyako/miyako.rb +25 -11
  40. data/lib/miyako.rb +28 -0
  41. data/lib/miyako_require_only.rb +35 -0
  42. data/miyako_basicdata.c +201 -17
  43. data/miyako_collision.c +315 -6
  44. data/miyako_diagram.c +331 -0
  45. data/miyako_drawing.c +26 -7
  46. data/miyako_font.c +259 -129
  47. data/miyako_input_audio.c +24 -14
  48. data/miyako_layout.c +106 -8
  49. data/miyako_no_katana.c +398 -171
  50. data/miyako_sprite2.c +275 -38
  51. data/miyako_transform.c +113 -107
  52. data/miyako_utility.c +34 -48
  53. data/miyako_yuki.c +241 -0
  54. data/sample/Diagram_sample/diagram_sample_yuki2.rb +30 -30
  55. data/sample/Room3/blue.rb +19 -19
  56. data/sample/Room3/green.rb +9 -9
  57. data/sample/Room3/main.rb +12 -12
  58. data/sample/Room3/red.rb +12 -12
  59. data/sample/Room3/title.rb +15 -10
  60. data/sample/collision_test2.rb +2 -1
  61. data/sample/fixed_map_test/fixed_map_sample.rb +7 -6
  62. data/sample/map_test/main_scene.rb +12 -10
  63. data/sample/map_test/map_manager.rb +14 -13
  64. data/sample/rasterscroll.rb +5 -5
  65. data/sample/takahashi.rb +3 -3
  66. data/sample/textbox_sample.rb +7 -6
  67. data/sample/transform.rb +2 -1
  68. data/uninstall_miyako.rb +4 -1
  69. data/win/miyako_no_katana.so +0 -0
  70. metadata +15 -4
  71. data/lib/Miyako/EXT/miyako_cairo.rb +0 -62
  72. data/sample/cairo_sample.rb +0 -25
@@ -38,71 +38,136 @@ module Miyako
38
38
  def to_unit
39
39
  return nil
40
40
  end
41
-
41
+
42
42
  #===描画可能・不可状態を返すメソッドのテンプレート
43
43
  #返却値:: falseを返す
44
44
  def visible
45
45
  return false
46
46
  end
47
-
47
+
48
48
  #===描画可能・不可状態を設定するメソッドのテンプレート
49
- #返却値:: falseを返す
49
+ #返却値:: 自分自身を返す
50
50
  def visible=(v)
51
51
  return self
52
52
  end
53
-
53
+
54
54
  #===描画可能状態にするメソッドのテンプレート
55
55
  def show
56
56
  self.visible = true
57
57
  end
58
-
58
+
59
59
  #===描画不可能状態にするメソッドのテンプレート
60
60
  def hide
61
61
  self.visible = false
62
62
  end
63
-
63
+
64
64
  #===領域の矩形を取得するメソッドのテンプレート
65
- #返却値:: nilを返す
65
+ #Spriteクラスの時は部分矩形が返ってくることに注意
66
+ #返却値:: Rect構造体インスタンス(デフォルトはnil)
66
67
  def rect
67
68
  return nil
68
69
  end
69
-
70
- #===領域の最大矩形を取得するメソッドのテンプレート
71
- #返却値:: nilを返す
72
- def broad_rect
73
- return nil
74
- end
75
-
70
+
76
71
  #===画像(Bitmapクラスのインスタンス)を取得するメソッドのテンプレート
77
72
  #返却値:: nilを返す
78
73
  def bitmap
79
74
  return nil
80
75
  end
81
-
82
- #===画像内での描画開始位置(x座標)を取得するメソッドのテンプレート
83
- #返却値:: 0を返す
76
+
77
+ #=== mixin されたインスタンスの部分矩形開始位置(x)を取得する
78
+ #返却値:: 部分矩形開始位置(デフォルトは0)
84
79
  def ox
85
80
  return 0
86
81
  end
87
-
88
- #===画像内での描画開始位置(y座標)を取得するメソッドのテンプレート
89
- #返却値:: 0を返す
82
+
83
+ #=== mixin されたインスタンスの部分矩形開始位置(y)を取得する
84
+ #返却値::部分矩形開始位置(デフォルトは0)
90
85
  def oy
91
86
  return 0
92
87
  end
93
-
88
+
89
+ #=== mixin されたインスタンスの部分矩形幅を取得する
90
+ #返却値:: インスタンスの幅(デフォルトは0)
91
+ def ow
92
+ return 0
93
+ end
94
+
95
+ #=== mixin されたインスタンスの部分矩形高を取得する
96
+ #返却値:: インスタンスの高さ(デフォルトは0)
97
+ def oh
98
+ return 0
99
+ end
100
+
101
+ #=== スプライトの部分矩形を返す
102
+ #返却値:: Rect構造体インスタンス(デフォルトはnil)
103
+ def part_rect
104
+ return nil
105
+ end
106
+
107
+ #=== スプライトの元画像の大きさを返す
108
+ #返却値:: Size構造体インスタンス(デフォルトはnil)
109
+ def image_size
110
+ return nil
111
+ end
112
+
113
+ #=== スプライトの元画像の矩形を返す
114
+ #返却値:: Rect構造体インスタンス(デフォルトはnil)
115
+ def image_rect
116
+ return nil
117
+ end
118
+
119
+ def update
120
+ end
121
+
122
+ #===位置を指定して画面への描画を指示するメソッドのテンプレート
123
+ #オブジェクトで保持している位置情報ではなく、引数で渡された位置に描画する
124
+ #基本的に、メソッドのオーバーライドにより機能するが、pos,move_to!メソッドを持っているときは、
125
+ #これらのメソッドを呼び出して同じ動作を行うが処理速度的に課題あり
126
+ #ただし、上記のメソッドを持っていない場合は、単純にrenderメソッドを呼び出す
127
+ #_x_:: 描画位置のx座標
128
+ #_y_:: 描画位置のy座標
129
+ #返却値:: 自分自身を返す
130
+ def render_xy(x, y)
131
+ if [:pos, :move_to!].all?{|mn| self.class.method_defined?(mn)}
132
+ old_pos = self.pos
133
+ self.move_to!(x,y)
134
+ self.render
135
+ self.move_to!(*old_pos)
136
+ return self
137
+ end
138
+ return self.render
139
+ end
140
+
141
+ #===位置を指定して画像への描画を指示するメソッドのテンプレート
142
+ #オブジェクトで保持している位置情報ではなく、引数で渡された位置に描画する
143
+ #基本的に、メソッドのオーバーライドにより機能するが、pos,move_to!メソッドを持っているときは、
144
+ #これらのメソッドを呼び出して同じ動作を行うが、処理速度的に課題あり
145
+ #ただし、上記のメソッドを持っていない場合は、単純にrender_toメソッドを呼び出す
146
+ #_dst_:: 対象の画像
147
+ #_x_:: 描画位置のx座標
148
+ #_y_:: 描画位置のy座標
149
+ #返却値:: 自分自身を返す
150
+ def render_xy_to(dst, x, y)
151
+ if [:pos, :move_to!].all?{|mn| self.class.method_defined?(mn)}
152
+ old_pos = self.pos
153
+ self.move_to!(x,y)
154
+ self.render_to(dst)
155
+ self.move_to!(*old_pos)
156
+ return self
157
+ end
158
+ return self.render_to(dst)
159
+ end
160
+
94
161
  #===画面への描画を指示するメソッドのテンプレート
95
- #_block_:: 呼び出し時にブロック付き呼び出しが行われたときのブロック本体。呼び先に渡すことが出来る。ブロックがなければnilが入る
96
162
  #返却値:: 自分自身を返す
97
- def render(&block)
163
+ def render
98
164
  return self
99
165
  end
100
-
166
+
101
167
  #===画像への描画を指示するメソッドのテンプレート
102
168
  #_dst_:: 対象の画像
103
- #_block_:: 呼び出し時にブロック付き呼び出しが行われたときのブロック本体。呼び先に渡すことが出来る。ブロックがなければnilが入る
104
169
  #返却値:: 自分自身を返す
105
- def render_to(dst, &block)
170
+ def render_to(dst)
106
171
  return self
107
172
  end
108
173
  end
@@ -112,6 +177,40 @@ module Miyako
112
177
  アニメーションの基本メソッドで構成されるテンプレートモジュール
113
178
  =end
114
179
  module Animation
180
+ @@anim_hash = {}
181
+
182
+ def Animation.[](key)
183
+ @@anim_hash[key]
184
+ end
185
+
186
+ def Animation.[]=(key, value)
187
+ @@anim_hash[key] = value
188
+ end
189
+
190
+ def Animation.anim_hash
191
+ @@anim_hash
192
+ end
193
+
194
+ def Animation.start
195
+ @@anim_hash.each_value{|v| v.start if v }
196
+ end
197
+
198
+ def Animation.stop
199
+ @@anim_hash.each_value{|v| v.stop if v }
200
+ end
201
+
202
+ def Animation.reset
203
+ @@anim_hash.each_value{|v| v.reset if v }
204
+ end
205
+
206
+ def Animation.update
207
+ @@anim_hash.each_value{|v| v.update_animation if v }
208
+ end
209
+
210
+ def Animation.update_animation
211
+ @@anim_hash.each_value{|v| v.update_animation if v }
212
+ end
213
+
115
214
  #===アニメーションを開始するメソッドのテンプレート
116
215
  #返却値:: 自分自身を返す
117
216
  def start
@@ -136,7 +235,7 @@ module Miyako
136
235
  return false
137
236
  end
138
237
  end
139
-
238
+
140
239
  #==複数スプライト管理(配列)機能を追加するモジュール
141
240
  #配列にスプライトとして最低限の機能を追加する。
142
241
  #また、独自にswapなどのメソッドを追加。
@@ -162,7 +261,7 @@ module Miyako
162
261
  def sprite_only!
163
262
  self.delete_if{|e| !e.class.include?(SpriteBase) && !e.class.include?(SpriteArray)}
164
263
  end
165
-
264
+
166
265
  #===配列要素を複製したコピー配列を取得する
167
266
  #通常、インスタンスの複写に使われるdup,cloneメソッドは、同じ配列要素を見ているが、
168
267
  #このメソッドでは、要素も複製したものが複製される(各要素のdeep_copyメソッドを呼び出す)
@@ -178,7 +277,7 @@ module Miyako
178
277
  def visible
179
278
  return self.sprite_only.map{|e| e.visible}
180
279
  end
181
-
280
+
182
281
  #===各要素の描画可能状態を一気に設定する
183
282
  #すべての要素のvisibleメソッドの値を変更する
184
283
  #登録されている名前順の配列になる。
@@ -188,7 +287,7 @@ module Miyako
188
287
  self.sprite_only.each{|e| e.visible = v}
189
288
  return self
190
289
  end
191
-
290
+
192
291
  #===各要素の位置を変更する(変化量を指定)
193
292
  #ブロックを渡したとき、戻り値として[更新したdx,更新したdy]とした配列を返すと、
194
293
  #それがその要素での移動量となる。
@@ -250,7 +349,7 @@ module Miyako
250
349
  self.sprite_only.each{|sprite| sprite.start }
251
350
  return self
252
351
  end
253
-
352
+
254
353
  #===描く画像のアニメーションを停止する
255
354
  #各要素のstopメソッドを呼び出す
256
355
  #返却値:: 自分自身を返す
@@ -258,7 +357,7 @@ module Miyako
258
357
  self.sprite_only.each{|sprite| sprite.stop }
259
358
  return self
260
359
  end
261
-
360
+
262
361
  #===描く画像のアニメーションを先頭パターンに戻す
263
362
  #各要素のresetメソッドを呼び出す
264
363
  #返却値:: 自分自身を返す
@@ -266,7 +365,7 @@ module Miyako
266
365
  self.sprite_only.each{|sprite| sprite.reset }
267
366
  return self
268
367
  end
269
-
368
+
270
369
  #===描く画像のアニメーションを更新する
271
370
  #各要素のupdate_animationメソッドを呼び出す
272
371
  #返却値:: 描く画像のupdate_spriteメソッドを呼び出した結果を配列で返す
@@ -275,7 +374,7 @@ module Miyako
275
374
  e.update_animation
276
375
  }
277
376
  end
278
-
377
+
279
378
  #===指定した要素の内容を入れ替える
280
379
  #配列の先頭から順にrenderメソッドを呼び出す。
281
380
  #描画するインスタンスは、引数がゼロのrenderメソッドを持っているもののみ(持っていないときは呼び出さない)
@@ -288,7 +387,7 @@ module Miyako
288
387
  self[idx1], self[idx2] = self[idx2], self[idx1]
289
388
  return self
290
389
  end
291
-
390
+
292
391
  #===配列の要素を画面に描画する
293
392
  #配列の先頭から順にrenderメソッドを呼び出す。
294
393
  #描画するインスタンスは、SpriteBaseモジュールがmixinされているクラスのみ
@@ -297,7 +396,7 @@ module Miyako
297
396
  self.sprite_only.each{|e| e.render }
298
397
  return self
299
398
  end
300
-
399
+
301
400
  #===配列の要素を対象の画像に描画する
302
401
  #配列の先頭から順にrender_toメソッドを呼び出す。
303
402
  #_dst_:: 描画対象の画像インスタンス
@@ -307,7 +406,7 @@ module Miyako
307
406
  return self
308
407
  end
309
408
  end
310
-
409
+
311
410
  #==ディープコピーを実装するモジュール
312
411
  #dup、cloneとは違い、「ディープコピー(配列などの要素も複製するコピー)」を実装するためのモジュール。
313
412
  module DeepCopy
@@ -32,7 +32,7 @@ module Miyako
32
32
  @@movie_list = []
33
33
 
34
34
  attr_accessor :visible #レンダリングの可否(true->描画 false->非描画)
35
-
35
+
36
36
  #===動画のインスタンスを作成する
37
37
  #(但し、現在の所、loopパラメータは利用できない)
38
38
  #_fname_:: 動画ファイル名
@@ -43,7 +43,7 @@ module Miyako
43
43
 
44
44
  @x = 0
45
45
  @y = 0
46
-
46
+
47
47
  raise MiyakoIOError.no_file(fname) unless File.exist?(fname)
48
48
  @movie = SDL::MPEG.load(fname)
49
49
  @size = Size.new(@movie.info.width, @movie.info.height)
@@ -52,11 +52,11 @@ module Miyako
52
52
  @visible = true
53
53
  @sprite = Sprite.new({:size=>@size , :type=>:movie})
54
54
  @sprite.snap(self)
55
-
55
+
56
56
  @movie.enable_audio(true) unless $not_use_audio
57
57
  @movie.enable_video(true)
58
58
  @movie.set_loop(loops)
59
-
59
+
60
60
  @movie.set_display(@sprite.bitmap)
61
61
  @movie.scale(1.0)
62
62
  @@movie_list.push(self)
@@ -67,13 +67,13 @@ module Miyako
67
67
  @y = @layout.pos[1]
68
68
  @sprite.move_to!(*@layout.pos)
69
69
  end
70
-
70
+
71
71
  def initialize_copy(obj) #:nodoc:
72
72
  @sprite = @sprite.dup
73
73
  @size = @size.dup
74
74
  copy_layout
75
75
  end
76
-
76
+
77
77
  #===動画再生時の音量を指定する
78
78
  #_v_:: 指定する音量。(0~100までの整数)
79
79
  def set_volume(v)
@@ -150,11 +150,11 @@ module Miyako
150
150
  #visibleメソッドの値がfalseのときは描画されない。
151
151
  #返却値:: 自分自身を返す
152
152
  def render
153
- return slef nless @visible
153
+ return self unless @visible
154
154
  @sprite.render
155
155
  return self
156
156
  end
157
-
157
+
158
158
  #===一時停止中の動画の再生を再開する
159
159
  #Miyako::Movie#pause メソッドを実行した後に呼び出す
160
160
  def_delegators(:@movie, :rewind)
@@ -34,9 +34,8 @@ module Miyako
34
34
  class Parts < Delegator
35
35
  include SpriteBase
36
36
  include Animation
37
- include Enumerable
38
37
  include Layout
39
- extend Forwardable
38
+ include Enumerable
40
39
 
41
40
  #===Partsクラスインスタンスを生成
42
41
  #_size_:: パーツ全体の大きさ。Size構造体のインスタンスもしくは要素数が2の配列
@@ -53,7 +52,7 @@ module Miyako
53
52
 
54
53
  def __setobj__(obj)
55
54
  end
56
-
55
+
57
56
  def initialize_copy(obj) #:nodoc:
58
57
  copy_layout
59
58
  @list = SpriteList.new
@@ -63,7 +62,7 @@ module Miyako
63
62
  }
64
63
  self
65
64
  end
66
-
65
+
67
66
  #===補助パーツvalueをnameに割り当てる
68
67
  #_name_:: 補助パーツに与える名前(シンボル)
69
68
  #_value_:: 補助パーツのインスタンス(スプライト、テキストボックス、アニメーション、レイアウトボックスなど)
@@ -168,21 +167,65 @@ module Miyako
168
167
  def dispose
169
168
  @list.dispose
170
169
  end
171
-
172
- # mixinしたモジュールが優先して呼ばれるメソッドを再び移譲
173
- def_delegators(:@list, :render, :render_to, :visible, :visible=, :show, :hide)
174
- def_delegators(:@list, :start, :stop, :reset, :update_animation, :each)
175
-
176
- #===各部品を移動させる
177
- #Parts#move!はすでに予約されているため、
178
- #SpriteList#move!はParts#parts_move!に改名。
179
- #詳細は、SpriteList#move!を参照。
180
- def_delegator(:@list, :move!, :parts_move!)
181
-
182
- #===各部品を移動させる
183
- #Parts#move_to!はすでに予約されているため、
184
- #SpriteList#move_to!はParts#parts_move_to!に改名。
185
- #詳細は、SpriteList#move_to!を参照。
186
- def_delegator(:@list, :move_to!, :parts_move_to!)
170
+
171
+ def render
172
+ @list.render
173
+ end
174
+
175
+ def render_to(dst)
176
+ @list.render_to(dst)
177
+ end
178
+
179
+ def visible
180
+ @list.visible
181
+ end
182
+
183
+ def visible=(f)
184
+ @list.visible=f
185
+ end
186
+
187
+ def show
188
+ @list.show
189
+ end
190
+
191
+ def hide
192
+ @list.hide
193
+ end
194
+
195
+ def start
196
+ @list.start
197
+ end
198
+
199
+ def stop
200
+ @list.stop
201
+ end
202
+
203
+ def reset
204
+ @list.reset
205
+ end
206
+
207
+ def update_animation
208
+ @list.update_animation
209
+ end
210
+
211
+ def each
212
+ @list.each
213
+ end
214
+
215
+ def move!(dx, dy, &block)
216
+ @list.move!(dx, dy, &block)
217
+ end
218
+
219
+ def move_to!(x, y, &block)
220
+ @list.move_to!(x, y, &block)
221
+ end
222
+
223
+ def part_move!(dx, dy)
224
+ @list.part_move!(dx, dy)
225
+ end
226
+
227
+ def part_move_to!(x, y)
228
+ @list.part_move_to!(x, y)
229
+ end
187
230
  end
188
231
  end
@@ -49,7 +49,7 @@ module Miyako
49
49
  @pos = Point.new(0, 0)
50
50
  @visible = true
51
51
  end
52
-
52
+
53
53
  def initialize_copy(obj) #:nodoc:
54
54
  @sprite = @sprite.dup
55
55
  @pos = @pos.dup
@@ -137,7 +137,7 @@ module Miyako
137
137
  def dispose
138
138
  @sprite.dispose
139
139
  end
140
-
140
+
141
141
  #===画面に描画を指示する
142
142
  #現在表示できるプレーンを、現在の状態で描画するよう指示する
143
143
  #--
@@ -148,13 +148,13 @@ module Miyako
148
148
  @size.h.times{|y|
149
149
  @size.w.times{|x|
150
150
  u = @sprite.to_unit
151
- u.move_to(x * @sprite.ow + @pos.x, y * @sprite.oh + @pos.y)
151
+ u.move_to!(x * @sprite.ow + @pos.x, y * @sprite.oh + @pos.y)
152
152
  Screen.render_screen(u) if u.x >= 0 && u.y >= 0 && u.x + u.ow <= Screen.bitmap.w && u.y + u.oh <= Screen.bitmap.h
153
153
  }
154
154
  }
155
155
  return self
156
156
  end
157
-
157
+
158
158
  #===描画の素になるスプライトのアニメーションを更新する
159
159
  #返却値:: 更新した結果、パターンが変わった・アニメーションが終了したときはtrue、それ以外はfalseを返す
160
160
  def update_animation
@@ -39,7 +39,7 @@ module Miyako
39
39
  #フルスクリーンモードを示す値
40
40
  FULLSCREEN_MODE = 1
41
41
  #ウインドウモード・フルスクリーンモードを切り替える際のフラグを示す配列
42
- ScreenFlag = $miyako_use_opengl ? [SDL::OPENGL, SDL::OPENGL | SDL::FULLSCREEN] : [SDL::HWSURFACE | SDL::DOUBLEBUF | SDL::ANYFORMAT, SDL::ANYFORMAT | SDL::FULLSCREEN]
42
+ ScreenFlag = $miyako_use_opengl ? [SDL::OPENGL, SDL::OPENGL | SDL::FULLSCREEN] : [SDL::HWSURFACE | SDL::DOUBLEBUF | SDL::ANYFORMAT, SDL::HWSURFACE | SDL::DOUBLEBUF | SDL::ANYFORMAT | SDL::FULLSCREEN]
43
43
 
44
44
  def Screen::get_fps_count
45
45
  return @@fps == 0 ? 0 : FpsMax / @@fps
@@ -55,16 +55,17 @@ module Miyako
55
55
  @@min_interval_r = @@min_interval / 1000
56
56
  @@t = 0
57
57
  @@freezing = false
58
- @@mode = WINDOW_MODE
58
+ @@mode = FULLSCREEN_MODE
59
59
  @@unit = SpriteUnitFactory.create
60
+ @@pos = Size.new(0,0)
60
61
 
61
62
  @@size = Size.new(DefaultWidth, DefaultHeight)
62
63
  @@in_the_scene = false
63
64
  @@screen = nil
64
65
  @@viewport = nil
65
-
66
- @@pre_render_array = []
67
- @@auto_render_array = []
66
+
67
+ @@pre_render_array = SpriteList.new
68
+ @@auto_render_array = SpriteList.new
68
69
 
69
70
  #===画面関連の初期化処理
70
71
  #呼び出し時に、別プロセスで生成したSDL::Screenクラスインスタンスを引数として渡すと、
@@ -96,7 +97,7 @@ module Miyako
96
97
  def Screen.initialized?
97
98
  @@initialized
98
99
  end
99
-
100
+
100
101
  #===画面の状態(ウインドウモードとフルスクリーンモード)を設定する
101
102
  #_v_:: ウィンドウモードのときは、Screen::WINDOW_MODE、 フルスクリーンモードのときはScreen::FULLSCREEN_MODE
102
103
  def Screen::set_mode(v)
@@ -168,6 +169,13 @@ module Miyako
168
169
  return @@size[1]
169
170
  end
170
171
 
172
+ #===画面の左上位置を取得する
173
+ #位置は必ず[0,0]を返す
174
+ #返却値:: Size構造体
175
+ def Screen::pos
176
+ return @@pos.dup
177
+ end
178
+
171
179
  #===画面を管理するSpriteUnitを取得する
172
180
  #新しいSpriteUnitを作成して返す
173
181
  #返却値:: SpriteUnitインスタンス
@@ -305,12 +313,12 @@ module Miyako
305
313
  return unless @@screen
306
314
  @@screen.fillRect(0, 0, @@screen.w, @@screen.h, [0, 0, 0, 0])
307
315
  end
308
-
316
+
309
317
  #===プリレンダー配列に登録されたインスタンスを画面に描画する
310
318
  #Screen.pre_render_arrayに登録したインスタンスを描画する
311
319
  def Screen::pre_render
312
320
  end
313
-
321
+
314
322
  #===画面を更新する
315
323
  #描画した画面を、実際にミニ見える形に反映させる
316
324
  #呼び出し時に画面の消去は行われないため、消去が必要なときは明示的にScreen.clearメソッドを呼び出す必要がある