ruby-miyako 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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構造体のインスタンス)
|