ruby-miyako 2.1.2 → 2.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -29,7 +29,7 @@ module Miyako
29
29
  include Layout
30
30
  extend Forwardable
31
31
 
32
- attr_accessor :textarea
32
+ attr_accessor :textarea, :visible
33
33
  attr_accessor :select_type, :waiting, :selecting
34
34
  attr_accessor :font, :margin
35
35
  attr_reader :wait_cursor, :select_cursor, :choices
@@ -89,7 +89,7 @@ module Miyako
89
89
 
90
90
  attr_accessor :visible
91
91
  attr_accessor :update_inner, :update_text, :update_cr, :update_clear
92
- attr_reader :valign, :visibles
92
+ attr_reader :valign, :visibles, :pre_visibles, :bgs
93
93
  #release_checks:: ポーズ解除を問い合わせるブロックの配列。
94
94
  #callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
95
95
  #ok_checks:: コマンド選択決定を問い合わせるブロックの配列。
@@ -148,6 +148,8 @@ module Miyako
148
148
  @over_exec = false
149
149
  @text_box = nil
150
150
  @command_box = nil
151
+ @text_box_all = nil
152
+ @command_box_all = nil
151
153
 
152
154
  @executing = false
153
155
 
@@ -163,6 +165,8 @@ module Miyako
163
165
  @select_amount = [0, 0]
164
166
  @mouse_amount = nil
165
167
 
168
+ @mouse_enable = true
169
+
166
170
  @result = nil
167
171
  @plot_result = nil
168
172
 
@@ -173,6 +177,8 @@ module Miyako
173
177
 
174
178
  @parts = {}
175
179
  @visibles = SpriteList.new
180
+ @pre_visibles = SpriteList.new
181
+ @bgs = SpriteList.new
176
182
  @vars = {}
177
183
  @visible = true
178
184
 
@@ -184,15 +190,15 @@ module Miyako
184
190
 
185
191
  @valign = :middle
186
192
 
187
- @release_checks_default = [lambda{ Input.pushed_any?(:btn1, :spc) }, lambda{ Input.click?(:left) } ]
193
+ @release_checks_default = [lambda{ Input.pushed_any?(:btn1, :spc) }, lambda{ @mouse_enable && Input.click?(:left) } ]
188
194
  @release_checks = @release_checks_default.dup
189
195
 
190
196
  @ok_checks_default = [lambda{ Input.pushed_any?(:btn1, :spc) },
191
- lambda{ self.commandbox.attach_any_command?(*Input.get_mouse_position) && Input.click?(:left) } ]
197
+ lambda{ @mouse_enable && self.commandbox.attach_any_command?(*Input.get_mouse_position) && Input.click?(:left) } ]
192
198
  @ok_checks = @ok_checks_default.dup
193
199
 
194
200
  @cancel_checks_default = [lambda{ Input.pushed_any?(:btn2, :esc) },
195
- lambda{ Input.click?(:right) } ]
201
+ lambda{ @mouse_enable && Input.click?(:right) } ]
196
202
  @cancel_checks = @cancel_checks_default.dup
197
203
 
198
204
  @key_amount_proc = lambda{ Input.pushed_amount }
@@ -220,6 +226,33 @@ module Miyako
220
226
  raise MiyakoCopyError.not_copy("Yuki")
221
227
  end
222
228
 
229
+ #===マウスでの制御を可能にする
230
+ #ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、
231
+ #それに加えて、マウスでもゲームパッド・キーボードでの制御が行える
232
+ #Yukiクラスインスタンス生成時はマウス利用可能
233
+ #返却値:: 自分自身を返す
234
+ def enable_mouse
235
+ @mouse_enable = true
236
+ return self
237
+ end
238
+
239
+ #===マウスでの制御を不可にする
240
+ #ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、
241
+ #マウスでの利用を制限する
242
+ #Yukiクラスインスタンス生成時はマウス利用可能
243
+ #返却値:: 自分自身を返す
244
+ def disable_mouse
245
+ @mouse_enable = false
246
+ return self
247
+ end
248
+
249
+ #===マウスでの制御を可・不可を問い合わせる
250
+ #マウスを利用できるときはtrue、利用できないときはfalseを返す
251
+ #返却値:: true/false
252
+ def mouse_enable?
253
+ @mouse_enable
254
+ end
255
+
223
256
  #===Yuki#showで表示指定した画像を描画する
224
257
  #描画順は、showメソッドで指定した順に描画される(先に指定した画像は後ろに表示される)
225
258
  #なお、visibleの値がfalseの時は描画されない。
@@ -314,10 +347,34 @@ module Miyako
314
347
  #(例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
315
348
  #
316
349
  #返却値:: 描画対象リスト
317
- def visibles
350
+ def visibles_names
318
351
  @visibles.names
319
352
  end
320
353
 
354
+ #===現在描画対象のパーツ名のリストを取得する
355
+ #[[Yukiスクリプトとして利用可能]]
356
+ #現在描画しているパーツ名の配列を参照する。
357
+ #実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。
358
+ #Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される
359
+ #(例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
360
+ #
361
+ #返却値:: 描画対象リスト
362
+ def pre_visibles_names
363
+ @pre_visibles.names
364
+ end
365
+
366
+ #===現在描画対象のパーツ名のリストを取得する
367
+ #[[Yukiスクリプトとして利用可能]]
368
+ #現在描画しているパーツ名の配列を参照する。
369
+ #実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。
370
+ #Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される
371
+ #(例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
372
+ #
373
+ #返却値:: 描画対象リスト
374
+ def bgs_names
375
+ @bgs.names
376
+ end
377
+
321
378
  #===オブジェクトを登録する
322
379
  #[[Yukiスクリプトとして利用可能]]
323
380
  #オブジェクトをパーツnameとして登録する。
@@ -332,29 +389,45 @@ module Miyako
332
389
  end
333
390
 
334
391
  #===表示・描画対象のテキストボックスを選択する
392
+ #第2引数として、テキストボックス全体を渡せる(省略可能)
393
+ #第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、
394
+ #テキストボックス全体を制御可能
395
+ #第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する
335
396
  #[[Yukiスクリプトとして利用可能]]
336
- #_box_:: テキストボックスのインスタンス
397
+ #_box_:: テキストボックス本体
398
+ #_box_all_:: テキストボックス全体
337
399
  #
338
400
  #返却値:: 自分自身を返す
339
- def select_textbox(box)
401
+ def select_textbox(box, box_all = nil)
340
402
  @text_box = box
403
+ @text_box_all = box_all || box
404
+ unless @command_box
405
+ @command_box = @text_box
406
+ @command_box_all = @text_box_all
407
+ end
341
408
  return self
342
409
  end
343
410
 
344
411
  #===表示・描画対象のコマンドボックスを選択する
412
+ #第2引数として、テキストボックス全体を渡せる(省略可能)
413
+ #第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、
414
+ #テキストボックス全体を制御可能
415
+ #第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する
345
416
  #[[Yukiスクリプトとして利用可能]]
346
- #_box_:: テキストボックスのインスタンス
417
+ #_box_:: テキストボックス本体
418
+ #_box_all_:: テキストボックス全体
347
419
  #
348
420
  #返却値:: 自分自身を返す
349
- def select_commandbox(box)
421
+ def select_commandbox(box, box_all = nil)
350
422
  @command_box = box
423
+ @command_box_all = box_all || box
351
424
  return self
352
425
  end
353
426
 
354
427
  #===テキストボックスを取得する
355
428
  #[[Yukiスクリプトとして利用可能]]
356
429
  #テキストボックスが登録されていないときはnilを返す
357
- #返却値:: テキストボックスのインスタンス
430
+ #返却値:: テキストボックス
358
431
  def textbox
359
432
  return @text_box
360
433
  end
@@ -362,11 +435,68 @@ module Miyako
362
435
  #===コマンドボックスを取得する
363
436
  #[[Yukiスクリプトとして利用可能]]
364
437
  #コマンドボックスが登録されていないときはnilを返す
365
- #返却値:: コマンドボックスのインスタンス
438
+ #返却値:: コマンドボックス
366
439
  def commandbox
367
440
  return @command_box
368
441
  end
369
442
 
443
+ #===テキストボックス全体を取得する
444
+ #[[Yukiスクリプトとして利用可能]]
445
+ #テキストボックスが登録されていないときはnilを返す
446
+ #返却値:: テキストボックス全体
447
+ def textbox_all
448
+ return @text_box_all
449
+ end
450
+
451
+ #===コマンドボックス全体を取得する
452
+ #[[Yukiスクリプトとして利用可能]]
453
+ #コマンドボックスが登録されていないときはnilを返す
454
+ #返却値:: コマンドボックス全体
455
+ def commandbox_all
456
+ return @command_box_all
457
+ end
458
+
459
+ #===テキストボックスを描画可能にする
460
+ #[[Yukiスクリプトとして利用可能]]
461
+ #返却値:: レシーバ
462
+ def show_textbox
463
+ @text_box_all.show
464
+ return self
465
+ end
466
+
467
+ #===コマンドボックスを描画可能にする
468
+ #[[Yukiスクリプトとして利用可能]]
469
+ #返却値:: レシーバ
470
+ def show_commandbox
471
+ @command_box_all.show
472
+ return self
473
+ end
474
+
475
+ #===テキストボックスを描画不可能にする
476
+ #[[Yukiスクリプトとして利用可能]]
477
+ #返却値:: レシーバ
478
+ def hide_textbox
479
+ @text_box_all.hide
480
+ return self
481
+ end
482
+
483
+ #===コマンドボックスを描画不可能にする
484
+ #[[Yukiスクリプトとして利用可能]]
485
+ #返却値:: レシーバ
486
+ def hide_commandbox
487
+ @command_box_all.hide
488
+ return self
489
+ end
490
+
491
+ #===コマンドボックスとテキストボックスを共用しているか問い合わせる
492
+ #[[Yukiスクリプトとして利用可能]]
493
+ #テキストボックスとコマンドボックスを共用しているときはtrueを返す
494
+ #共用していなければfalseを返す
495
+ #返却値:: true/false
496
+ def box_shared?
497
+ @text_box_all.object_id == @command_box_all.object_id
498
+ end
499
+
370
500
  #===オブジェクトの登録を解除する
371
501
  #[[Yukiスクリプトとして利用可能]]
372
502
  #パーツnameとして登録されているオブジェクトを登録から解除する。
@@ -385,9 +515,13 @@ module Miyako
385
515
  #_names_:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
386
516
  #返却値:: 自分自身を返す
387
517
  def show(*names)
518
+ if names.length == 0
519
+ @visibles.each_value{|sprite| sprite.show}
520
+ return self
521
+ end
388
522
  names.each{|name|
389
- @visibles.add(name, @parts[name])
390
- @parts[name].show
523
+ @visibles.add(name, @parts[name]) unless @visibles.include?(name)
524
+ @visibles[name].show
391
525
  }
392
526
  return self
393
527
  end
@@ -398,13 +532,134 @@ module Miyako
398
532
  #_names_:: パーツ名(シンボル)、複数指定可能
399
533
  #返却値:: 自分自身を返す
400
534
  def hide(*names)
535
+ if names.length == 0
536
+ @visibles.each_value{|sprite| sprite.hide}
537
+ return self
538
+ end
539
+ names.each{|name| @visibles[name].hide }
540
+ return self
541
+ end
542
+
543
+ #===パーツで指定したオブジェクトを先頭に表示する
544
+ #[[Yukiスクリプトとして利用可能]]
545
+ #描画時に、指定したパーツを描画する
546
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
547
+ #_names_:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
548
+ #返却値:: 自分自身を返す
549
+ def pre_show(*names)
550
+ if names.length == 0
551
+ @pre_visibles.each_value{|sprite| sprite.show}
552
+ return self
553
+ end
554
+ names.each{|name|
555
+ @pre_visibles.add(name, @parts[name]) unless @pre_visibles.include?(name)
556
+ @pre_visibles[name].show
557
+ }
558
+ return self
559
+ end
560
+
561
+ #===パーツで指定したオブジェクトを隠蔽する
562
+ #[[Yukiスクリプトとして利用可能]]
563
+ #描画時に、指定したパーツを描画させないよう指定する
564
+ #_names_:: パーツ名(シンボル)、複数指定可能
565
+ #返却値:: 自分自身を返す
566
+ def pre_hide(*names)
567
+ if names.length == 0
568
+ @pre_visibles.each_value{|sprite| sprite.hide}
569
+ return self
570
+ end
571
+ names.each{|name| @pre_visibles[name].hide }
572
+ return self
573
+ end
574
+
575
+ #===パーツで指定した背景を表示する
576
+ #[[Yukiスクリプトとして利用可能]]
577
+ #描画時に、指定したパーツを描画する
578
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
579
+ #_names_:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
580
+ #返却値:: 自分自身を返す
581
+ def bg_show(*names)
582
+ if names.length == 0
583
+ @bgs.each_value{|sprite| sprite.show}
584
+ return self
585
+ end
401
586
  names.each{|name|
402
- @parts[name].hide
403
- @visibles.delete(name)
587
+ @bgs.add(name, @parts[name]) unless @bgs.include?(name)
588
+ @bgs[name].show
404
589
  }
405
590
  return self
406
591
  end
407
592
 
593
+ #===パーツで指定した背景を隠蔽する
594
+ #[[Yukiスクリプトとして利用可能]]
595
+ #描画時に、指定したパーツを描画させないよう指定する
596
+ #_names_:: パーツ名(シンボル)、複数指定可能
597
+ #返却値:: 自分自身を返す
598
+ def bg_hide(*names)
599
+ if names.length == 0
600
+ @bgs.each_value{|sprite| sprite.hide}
601
+ return self
602
+ end
603
+ names.each{|name| @bgs[name].hide }
604
+ return self
605
+ end
606
+
607
+ #===ファイル名で指定したスプライトを登録する
608
+ #[[Yukiスクリプトとして利用可能]]
609
+ #画面に表示するスプライトを登録する
610
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
611
+ #_name_:: スプライト名(重複するときは上書き)
612
+ #_filename_:: 読み込むファイル名
613
+ #_pre_:: pre_visiblesに登録するときはtrue、visiblesに登録するときはfalseを渡す
614
+ # 省略時はfalse
615
+ #返却値:: 自分自身を返す
616
+ def load_sprite(name, filename, pre=false)
617
+ spr = Sprite.new(:file=>filename, :type=>:ac)
618
+ @parts[name] = spr
619
+ @parts[name].hide
620
+ pre ? @pre_visibles.add(name, @parts[name]) : @visibles.add(name, @parts[name])
621
+ return self
622
+ end
623
+
624
+ #===背景を登録する
625
+ #[[Yukiスクリプトとして利用可能]]
626
+ #画面に表示する背景を登録する
627
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
628
+ #_name_:: スプライト名(重複するときは上書き)
629
+ #_filename_:: 読み込むファイル名
630
+ #返却値:: 自分自身を返す
631
+ def load_bg(name, filename)
632
+ spr = Sprite.new(:file=>filename, :type=>:ac)
633
+ @parts[name] = spr
634
+ @parts[name].hide
635
+ @bgs.add(name, @parts[name])
636
+ return self
637
+ end
638
+
639
+ #===BGMを登録する
640
+ #[[Yukiスクリプトとして利用可能]]
641
+ #音声ファイルを読み込み、BGMとして登録する
642
+ #登録したBGMはpartsメソッドを使って参照できる
643
+ #_name_:: スプライト名(重複するときは上書き)
644
+ #_filename_:: 読み込むファイル名
645
+ #返却値:: 自分自身を返す
646
+ def load_bgm(name, filename)
647
+ @parts[name] = Audio::BGM.new(filename)
648
+ return self
649
+ end
650
+
651
+ #===効果音を登録する
652
+ #[[Yukiスクリプトとして利用可能]]
653
+ #音声ファイルを読み込み、効果音として登録する
654
+ #登録した効果音はpartsメソッドを使って参照できる
655
+ #_name_:: スプライト名(重複するときは上書き)
656
+ #_filename_:: 読み込むファイル名
657
+ #返却値:: 自分自身を返す
658
+ def load_se(name, filename)
659
+ @parts[name] = Audio::SE.new(filename)
660
+ return self
661
+ end
662
+
408
663
  #===パーツで指定したオブジェクトの処理を開始する
409
664
  #[[Yukiスクリプトとして利用可能]]
410
665
  #nameで指定したパーツが持つ処理(例:アニメーション)を開始する。
@@ -1064,6 +1319,7 @@ module Miyako
1064
1319
  @pre_command.each{|proc| proc.call}
1065
1320
  @pre_cancel.each{|proc| proc.call}
1066
1321
  yield if block_given?
1322
+ @command_box_all.show if @command_box_all.object_id != @text_box_all.object_id
1067
1323
  @command_box.command(@command_box.create_choices_chain(choices, &chain_block))
1068
1324
  @result = nil
1069
1325
  @selecting = true
@@ -1086,12 +1342,14 @@ module Miyako
1086
1342
  return @on_disable.each{|proc| proc.call} unless @command_box.enable_choice?
1087
1343
  @result = @command_box.result
1088
1344
  @command_box.finish_command
1345
+ @command_box_all.hide if @command_box_all.object_id != @text_box_all.object_id
1089
1346
  @text_box.release
1090
1347
  @selecting = false
1091
1348
  reset_selecting
1092
1349
  elsif @select_cancel
1093
1350
  @result = @cancel
1094
1351
  @command_box.finish_command
1352
+ @command_box_all.hide if @command_box_all.object_id != @text_box_all.object_id
1095
1353
  @text_box.release
1096
1354
  @selecting = false
1097
1355
  reset_selecting
@@ -1099,7 +1357,7 @@ module Miyako
1099
1357
  @command_box.move_cursor(*@select_amount)
1100
1358
  reset_selecting
1101
1359
  elsif @mouse_amount
1102
- @command_box.attach_cursor(*@mouse_amount.to_a)
1360
+ @command_box.attach_cursor(*@mouse_amount.to_a) if @mouse_enable
1103
1361
  reset_selecting
1104
1362
  end
1105
1363
  end
@@ -26,7 +26,6 @@ module Miyako
26
26
  #ただし、インスタンス変数として、@bodyを予約済み
27
27
  module Slide
28
28
  include Layout
29
- extend Forwardable
30
29
 
31
30
  @@templates = { }
32
31
 
@@ -38,6 +37,8 @@ module Miyako
38
37
  tmp[:size] ||= Size.new(640, 480)
39
38
  tmp[:type] ||= :ac
40
39
  tmp[:color] ||= Color[:white]
40
+ tmp[:empty] ||= false
41
+ return Parts.new(tmp[:size]) if tmp[:empty]
41
42
  return Parts.new(tmp[:size]).tap{|obj| obj[:___base___] = Sprite.new(tmp).fill(tmp[:color])}
42
43
  end
43
44
 
@@ -49,6 +50,8 @@ module Miyako
49
50
  @@templates["black"] = {:color=>[0,0,0,255]}
50
51
  @@templates["half-white"] = {:color=>[255,255,255,128]}
51
52
 
53
+ @@body = []
54
+
52
55
  #===スライドをテンプレート文字列から作成する
53
56
  #スライドを所定の名称で生成する。利用できるのは以下の7種類
54
57
  #"320x240" 大きさは320x240ピクセル、背景は白色
@@ -74,15 +77,60 @@ module Miyako
74
77
  @@templates[sym] = params
75
78
  end
76
79
 
80
+ def initialize(obj)
81
+ __setobj(obj)
82
+ end
83
+
84
+ def clone
85
+ @@body[self.__id__].clone
86
+ end
87
+
88
+ def dup
89
+ @@body[self.__id__].dup
90
+ end
91
+
92
+ def __getobj__
93
+ @@body[self.__id__]
94
+ end
95
+
96
+ def marshal_dump
97
+ Marshal.dump(@@body[self.__id__])
98
+ end
99
+
100
+ def marshal_load(obj)
101
+ Marshal.load(obj)
102
+ end
103
+
104
+ def method_missing(m, *args, &block)
105
+ puts "missing: #{m}"
106
+ return @@body[self.__id__].__send__(m, *args, &block) if @@body[self.__id__].methods.include?(m)
107
+ @@body[self.__id__].method_missing(m, *args, &block)
108
+ end
109
+
110
+ def respond_to?(m)
111
+ @@body[self.__id__].respond_to?(m)
112
+ end
113
+
114
+ def __setobj__(obj)
115
+ @@body[self.__id__] = obj
116
+ end
117
+
77
118
  #===スライド情報を初期化する
78
119
  #(例)init_slide(Slide.create(:size=>Size.new(320,240), :color=>[255,0,0]))
79
120
  #(例)init_slide(Slide["640x480"]))
80
121
  #_template_:: 元となるPartsクラスインスタンス(Slide.createメソッドで作成もしくはSlide.[]で取得できるテンプレートスライド)
81
122
  def init_slide(template)
82
123
  init_layout
83
- @body = template
84
- set_layout_size(*(@body.size))
85
- @body.snap(self)
124
+ @@body[self.__id__] = template
125
+ set_layout_size(*(@@body[self.__id__].size))
126
+ @@body[self.__id__].snap(self)
127
+ end
128
+
129
+ #===スライド本体を返す
130
+ #スライド本体を直接制御するときに使う
131
+ #返却値:: スライド本体
132
+ def slide_body
133
+ @@body[self.__id__]
86
134
  end
87
135
 
88
136
  def piece
@@ -95,7 +143,7 @@ module Miyako
95
143
  #_title_:: 取得したいパーツに対応したシンボル
96
144
  #返却値:: シンボルに対応したパーツ
97
145
  def [](title)
98
- return @body[title]
146
+ return @@body[self.__id__][title]
99
147
  end
100
148
 
101
149
  #===パーツに名前を割り付けて設定する
@@ -104,7 +152,7 @@ module Miyako
104
152
  #(2)パーツと、スナップさせるパーツの名前(シンボル)
105
153
  #返却値:: 自分自身を返す
106
154
  def []=(title, objs)
107
- @body[title] = objs
155
+ @@body[self.__id__][title] = objs
108
156
  return self
109
157
  end
110
158
 
@@ -129,12 +177,40 @@ module Miyako
129
177
  return slide_render_to(dst, &block)
130
178
  end
131
179
 
180
+ def show
181
+ slide_show
182
+ end
183
+
184
+ def hide
185
+ slide_hide
186
+ end
187
+
188
+ def update
189
+ slide_update
190
+ end
191
+
192
+ def update_animation
193
+ slide_update_animation
194
+ end
195
+
196
+ def start
197
+ slide_start
198
+ end
199
+
200
+ def stop
201
+ slide_stop
202
+ end
203
+
204
+ def reset
205
+ slide_reset
206
+ end
207
+
132
208
  #===スライドを画面に描画する
133
209
  #ブロックを渡すと、スライド,画面側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る。
134
210
  #ブロックの引数は、|スライド側SpriteUnit,画面側SpriteUnit|となる。
135
211
  #返却値:: 自分自身を返す
136
212
  def slide_render(&block)
137
- @body.render(&block)
213
+ @@body[self.__id__].render(&block) if @@body[self.__id__]
138
214
  return self
139
215
  end
140
216
 
@@ -144,14 +220,47 @@ module Miyako
144
220
  #_dst_:: 描画先画像(Spriteクラスインスタンスなど)
145
221
  #返却値:: 自分自身を返す
146
222
  def slide_render_to(dst, &block)
147
- @body.render(dst, &block)
223
+ @@body[self.__id__].render(dst, &block) if @@body[self.__id__]
224
+ return self
225
+ end
226
+
227
+ def slide_show
228
+ @@body[self.__id__].show if @@body[self.__id__]
229
+ return self
230
+ end
231
+
232
+ def slide_hide
233
+ @@body[self.__id__].hide if @@body[self.__id__]
234
+ return self
235
+ end
236
+
237
+ def slide_update
238
+ @@body[self.__id__].update if @@body[self.__id__]
239
+ return self
240
+ end
241
+
242
+ def slide_update_animation
243
+ @@body[self.__id__].update_animation if @@body[self.__id__]
244
+ return self
245
+ end
246
+
247
+ def slide_start
248
+ @@body[self.__id__].start if @@body[self.__id__]
249
+ return self
250
+ end
251
+
252
+ def slide_stop
253
+ @@body[self.__id__].stop if @@body[self.__id__]
254
+ return self
255
+ end
256
+
257
+ def slide_reset
258
+ @@body[self.__id__].reset if @@body[self.__id__]
148
259
  return self
149
260
  end
150
261
 
151
262
  #===@bodyに登録したオブジェクトとは別に作成していたインスタンスを解放する
152
263
  def dispose
153
264
  end
154
-
155
- def_delegators(:@body, :remove, :each, :start, :stop, :reset, :update, :update_animation)
156
265
  end
157
266
  end