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.
- data/README +275 -20
- data/extern.h +21 -1
- 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.rb +28 -0
- data/lib/miyako_require_only.rb +35 -0
- data/miyako_basicdata.c +201 -17
- data/miyako_collision.c +315 -6
- data/miyako_diagram.c +331 -0
- data/miyako_drawing.c +26 -7
- data/miyako_font.c +259 -129
- data/miyako_input_audio.c +24 -14
- data/miyako_layout.c +106 -8
- data/miyako_no_katana.c +398 -171
- data/miyako_sprite2.c +275 -38
- data/miyako_transform.c +113 -107
- data/miyako_utility.c +34 -48
- data/miyako_yuki.c +241 -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 +7 -6
- data/sample/transform.rb +2 -1
- data/uninstall_miyako.rb +4 -1
- data/win/miyako_no_katana.so +0 -0
- metadata +15 -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構造体のインスタンス)
|