ruby-miyako-mswin32 2.1.2 → 2.1.4

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  *******************************************************************************
2
2
  【 作者名 】 サイロス誠
3
3
  【 ソフト名 】 Interactive Media Authoring System "Miyako"
4
- 【 バージョン 】 2.1.2
5
- 【 作成日 】 2009/10/25
4
+ 【 バージョン 】 2.1.4
5
+ 【 作成日 】 2009/11/10
6
6
  【 種別 】 フリーウェア
7
7
  【 開発言語 】 Ruby 1.9.1
8
8
  【 ランタイム 】 Ruby 1.9.1~,Ruby/SDL 2.1~,SDL
@@ -15,7 +15,7 @@
15
15
 
16
16
  【 注意事項 】
17
17
 
18
- 本バージョンは、2.1.1公式リリース版です。
18
+ 本バージョンは、2.1.4公式リリース版です。
19
19
  本バージョンでは、ドキュメント・リファレンスは不十分ですが、「サイログ。」内や、サンプルプログラムの紹介等で随時ドキュメントを公開して行きます。
20
20
  (RDOC化を進めていますので、我こそはと思う方は是非・・・)
21
21
 
@@ -1398,5 +1398,86 @@ v2.1.2(2009.10.25)
1398
1398
  ・Sprite#render_rect2_xy_to
1399
1399
  <インスタンスメソッド廃止>
1400
1400
 
1401
+ v2.1.3(2009.10.28)
1402
+ <バグ修正>
1403
+ <機能改善>
1404
+ ・Slideモジュールの見直し(update,update_animationなどをオーバーライドしやすいように)
1405
+ <仕様変更>
1406
+ <ファイル追加>
1407
+ <ファイル削除>
1408
+ <グローバル変数追加>
1409
+ <定数追加>
1410
+ <定数削除>
1411
+ <構造体追加>
1412
+ <クラス追加>
1413
+ <モジュール追加>
1414
+ <mixin>
1415
+ <クラス・モジュールメソッド追加>
1416
+ <クラス・モジュールメソッド廃止>
1417
+ <モジュール関数追加>
1418
+ Slide#.slide_body
1419
+ Slide#.slide_show
1420
+ Slide#.slide_hide
1421
+ Slide#.slide_update
1422
+ Slide#.slide_update_animation
1423
+ Slide#.slide_start
1424
+ Slide#.slide_stop
1425
+ Slide#.slide_reset
1426
+ <インスタンスメソッド追加>
1427
+ <インスタンスメソッド廃止>
1428
+
1429
+ v2.1.4(2009.11.10)
1430
+ <バグ修正>
1431
+ ・Yuki#commandメソッドで、テキストボックスとコマンドボックスを強要している時、コマンド選択後にテキストボックスが描画されないバグを修正
1432
+ ・TextBox#visible,visible=が機能していないバグを修正
1433
+ <機能改善>
1434
+ ・Slide.createの引数に、:emptyを追加(スライドを示すスプライトを作るかどうか)
1435
+ ・Yuki#select_textboxで指定した時に、自動的に同じボックスをコマンドボックスとして登録できるようにした(以前は同じボックスを共用するときでも、select_commandboxを呼び出す必要があった)
1436
+ ・サンプルゲーム「3つの部屋」を2.1.4準拠に変更
1437
+ <仕様変更>
1438
+ ・(Initiative)Yuki#select_textboxの引数に、省略可能な第2引数を追加(テキストボックス全体を渡せる)
1439
+ ・(Initiative)Yuki#select_commandboxの引数に、省略可能な第2引数を追加(テキストボックス全体を渡せる)
1440
+ ・メソッド名変更: (Initiative)Yuki#visibles -> visibles_names
1441
+ ・(Initiative)Yuki#visibles の内容を変更(表示可能なスプライト→表示対象のスプライト)
1442
+ ・(Initiative)Yuki#show,hideの引数を省略したときは、全ての画像を描画可能・不可能に変更
1443
+ <ファイル追加>
1444
+ <ファイル削除>
1445
+ <グローバル変数追加>
1446
+ <定数追加>
1447
+ <定数削除>
1448
+ <構造体追加>
1449
+ <クラス追加>
1450
+ <モジュール追加>
1451
+ <mixin>
1452
+ <クラス・モジュールメソッド追加>
1453
+ <クラス・モジュールメソッド廃止>
1454
+ <モジュール関数追加>
1455
+ <インスタンスメソッド追加>
1456
+ ・(Initiative)Yuki#textbox_all
1457
+ ・(Initiative)Yuki#commandbox_all
1458
+ ・(Initiative)Yuki#enable_mouse
1459
+ ・(Initiative)Yuki#disenable_mouse
1460
+ ・(Initiative)Yuki#mouse_enable?
1461
+ ・(Initiative)Yuki#pre_visibles_names
1462
+ ・(Initiative)Yuki#bgs_names
1463
+ ・(Initiative)Yuki#pre_visibles
1464
+ ・(Initiative)Yuki#bgs
1465
+ ・(Initiative)Yuki#load_sprite
1466
+ ・(Initiative)Yuki#load_bg
1467
+ ・(Initiative)Yuki#load_bgm
1468
+ ・(Initiative)Yuki#load_se
1469
+ ・(Initiative)Yuki#pre_show
1470
+ ・(Initiative)Yuki#pre_hide
1471
+ ・(Initiative)Yuki#bg_show
1472
+ ・(Initiative)Yuki#bg_hide
1473
+ ・(Initiative)Yuki#bg_show
1474
+ ・(Initiative)Yuki#bg_hide
1475
+ ・(Initiative)Yuki#show_textbox
1476
+ ・(Initiative)Yuki#show_commandbox
1477
+ ・(Initiative)Yuki#hide_textbox
1478
+ ・(Initiative)Yuki#hide_commandbox
1479
+ ・(Initiative)Yuki#box_shared?
1480
+ <インスタンスメソッド廃止>
1481
+
1401
1482
  *******************************************************************************
1402
1483
  このReadMeファイルは「れ~どめ~えじた~」によって作成されました。
@@ -99,7 +99,7 @@ module Miyako
99
99
  #_enabe_:: コマンド選択の時はtrue、選択不可の時はfalseを設定
100
100
  CommandEX = Struct.new(:body, :body_selected, :condition, :result, :end_select_proc, :body_disable, :enable)
101
101
 
102
- attr_reader :visibles, :base
102
+ attr_reader :visibles, :pre_visibles, :bgs, :base
103
103
  attr_reader :valign
104
104
  #release_checks:: ポーズ解除を問い合わせるブロックの配列。
105
105
  #callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
@@ -158,6 +158,8 @@ module Miyako
158
158
  @yuki = { }
159
159
  @text_box = nil
160
160
  @command_box = nil
161
+ @text_box_all = nil
162
+ @command_box_all = nil
161
163
 
162
164
  @exec_plot = nil
163
165
 
@@ -171,11 +173,15 @@ module Miyako
171
173
  @select_amount = [0, 0]
172
174
  @mouse_amount = nil
173
175
 
176
+ @mouse_enable = true
177
+
174
178
  @result = nil
175
179
  @plot_result = nil
176
180
 
177
181
  @parts = {}
178
182
  @visibles = SpriteList.new
183
+ @pre_visibles = SpriteList.new
184
+ @bgs = SpriteList.new
179
185
  @vars = {}
180
186
 
181
187
  @text_methods = {:char => self.method(:text_by_char),
@@ -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 }
@@ -264,6 +270,33 @@ module Miyako
264
270
  @base.waiting_inner(yuki)
265
271
  end
266
272
 
273
+ #===マウスでの制御を可能にする
274
+ #ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、
275
+ #それに加えて、マウスでもゲームパッド・キーボードでの制御が行える
276
+ #Yukiクラスインスタンス生成時はマウス利用可能
277
+ #返却値:: 自分自身を返す
278
+ def enable_mouse
279
+ @mouse_enable = true
280
+ return self
281
+ end
282
+
283
+ #===マウスでの制御を不可にする
284
+ #ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、
285
+ #マウスでの利用を制限する
286
+ #Yukiクラスインスタンス生成時はマウス利用可能
287
+ #返却値:: 自分自身を返す
288
+ def disable_mouse
289
+ @mouse_enable = false
290
+ return self
291
+ end
292
+
293
+ #===マウスでの制御を可・不可を問い合わせる
294
+ #マウスを利用できるときはtrue、利用できないときはfalseを返す
295
+ #返却値:: true/false
296
+ def mouse_enable?
297
+ @mouse_enable
298
+ end
299
+
267
300
  #===Yuki#showで表示指定した画像を描画する
268
301
  #描画順は、showメソッドで指定した順に描画される(先に指定した画像は後ろに表示される)
269
302
  #なお、visibleの値がfalseの時は描画されない。
@@ -370,10 +403,34 @@ module Miyako
370
403
  #(例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
371
404
  #
372
405
  #返却値:: 描画対象リスト
373
- def visibles
406
+ def visibles_names
374
407
  @visibles.names
375
408
  end
376
409
 
410
+ #===現在描画対象のパーツ名のリストを取得する
411
+ #[[Yukiスクリプトとして利用可能]]
412
+ #現在描画しているパーツ名の配列を参照する。
413
+ #実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。
414
+ #Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される
415
+ #(例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
416
+ #
417
+ #返却値:: 描画対象リスト
418
+ def pre_visibles_names
419
+ @pre_visibles.names
420
+ end
421
+
422
+ #===現在描画対象のパーツ名のリストを取得する
423
+ #[[Yukiスクリプトとして利用可能]]
424
+ #現在描画しているパーツ名の配列を参照する。
425
+ #実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。
426
+ #Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される
427
+ #(例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
428
+ #
429
+ #返却値:: 描画対象リスト
430
+ def bgs_names
431
+ @bgs.names
432
+ end
433
+
377
434
  #===オブジェクトを登録する
378
435
  #[[Yukiスクリプトとして利用可能]]
379
436
  #オブジェクトをパーツnameとして登録する。
@@ -388,29 +445,45 @@ module Miyako
388
445
  end
389
446
 
390
447
  #===表示・描画対象のテキストボックスを選択する
448
+ #第2引数として、テキストボックス全体を渡せる(省略可能)
449
+ #第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、
450
+ #テキストボックス全体を制御可能
451
+ #第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する
391
452
  #[[Yukiスクリプトとして利用可能]]
392
- #_box_:: テキストボックスのインスタンス
453
+ #_box_:: テキストボックス本体
454
+ #_box_all_:: テキストボックス全体
393
455
  #
394
456
  #返却値:: 自分自身を返す
395
- def select_textbox(box)
457
+ def select_textbox(box, box_all = nil)
396
458
  @text_box = box
459
+ @text_box_all = box_all || box
460
+ unless @command_box
461
+ @command_box = @text_box
462
+ @command_box_all = @text_box_all
463
+ end
397
464
  return self
398
465
  end
399
466
 
400
467
  #===表示・描画対象のコマンドボックスを選択する
468
+ #第2引数として、テキストボックス全体を渡せる(省略可能)
469
+ #第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、
470
+ #テキストボックス全体を制御可能
471
+ #第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する
401
472
  #[[Yukiスクリプトとして利用可能]]
402
- #_box_:: テキストボックスのインスタンス
473
+ #_box_:: テキストボックス本体
474
+ #_box_all_:: テキストボックス全体
403
475
  #
404
476
  #返却値:: 自分自身を返す
405
- def select_commandbox(box)
477
+ def select_commandbox(box, box_all = nil)
406
478
  @command_box = box
479
+ @command_box_all = box_all || box
407
480
  return self
408
481
  end
409
482
 
410
483
  #===テキストボックスを取得する
411
484
  #[[Yukiスクリプトとして利用可能]]
412
485
  #テキストボックスが登録されていないときはnilを返す
413
- #返却値:: テキストボックスのインスタンス
486
+ #返却値:: テキストボックス
414
487
  def textbox
415
488
  return @text_box
416
489
  end
@@ -418,11 +491,68 @@ module Miyako
418
491
  #===コマンドボックスを取得する
419
492
  #[[Yukiスクリプトとして利用可能]]
420
493
  #コマンドボックスが登録されていないときはnilを返す
421
- #返却値:: コマンドボックスのインスタンス
494
+ #返却値:: コマンドボックス
422
495
  def commandbox
423
496
  return @command_box
424
497
  end
425
498
 
499
+ #===テキストボックス全体を取得する
500
+ #[[Yukiスクリプトとして利用可能]]
501
+ #テキストボックスが登録されていないときはnilを返す
502
+ #返却値:: テキストボックス全体
503
+ def textbox_all
504
+ return @text_box_all
505
+ end
506
+
507
+ #===コマンドボックス全体を取得する
508
+ #[[Yukiスクリプトとして利用可能]]
509
+ #コマンドボックスが登録されていないときはnilを返す
510
+ #返却値:: コマンドボックス全体
511
+ def commandbox_all
512
+ return @command_box_all
513
+ end
514
+
515
+ #===テキストボックスを描画可能にする
516
+ #[[Yukiスクリプトとして利用可能]]
517
+ #返却値:: レシーバ
518
+ def show_textbox
519
+ @text_box_all.show
520
+ return self
521
+ end
522
+
523
+ #===コマンドボックスを描画可能にする
524
+ #[[Yukiスクリプトとして利用可能]]
525
+ #返却値:: レシーバ
526
+ def show_commandbox
527
+ @command_box_all.show
528
+ return self
529
+ end
530
+
531
+ #===テキストボックスを描画不可能にする
532
+ #[[Yukiスクリプトとして利用可能]]
533
+ #返却値:: レシーバ
534
+ def hide_textbox
535
+ @text_box_all.hide
536
+ return self
537
+ end
538
+
539
+ #===コマンドボックスを描画不可能にする
540
+ #[[Yukiスクリプトとして利用可能]]
541
+ #返却値:: レシーバ
542
+ def hide_commandbox
543
+ @command_box_all.hide
544
+ return self
545
+ end
546
+
547
+ #===コマンドボックスとテキストボックスを共用しているか問い合わせる
548
+ #[[Yukiスクリプトとして利用可能]]
549
+ #テキストボックスとコマンドボックスを共用しているときはtrueを返す
550
+ #共用していなければfalseを返す
551
+ #返却値:: true/false
552
+ def box_shared?
553
+ @text_box_all.object_id == @command_box_all.object_id
554
+ end
555
+
426
556
  #===オブジェクトの登録を解除する
427
557
  #[[Yukiスクリプトとして利用可能]]
428
558
  #パーツnameとして登録されているオブジェクトを登録から解除する。
@@ -441,9 +571,13 @@ module Miyako
441
571
  #_names_:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
442
572
  #返却値:: 自分自身を返す
443
573
  def show(*names)
574
+ if names.length == 0
575
+ @visibles.each_value{|sprite| sprite.show}
576
+ return self
577
+ end
444
578
  names.each{|name|
445
- @visibles.add(name, @parts[name])
446
- @parts[name].show
579
+ @visibles.add(name, @parts[name]) unless @visibles.include?(name)
580
+ @visibles[name].show
447
581
  }
448
582
  return self
449
583
  end
@@ -454,13 +588,134 @@ module Miyako
454
588
  #_names_:: パーツ名(シンボル)、複数指定可能
455
589
  #返却値:: 自分自身を返す
456
590
  def hide(*names)
591
+ if names.length == 0
592
+ @visibles.each_value{|sprite| sprite.hide}
593
+ return self
594
+ end
595
+ names.each{|name| @visibles[name].hide }
596
+ return self
597
+ end
598
+
599
+ #===パーツで指定したオブジェクトを先頭に表示する
600
+ #[[Yukiスクリプトとして利用可能]]
601
+ #描画時に、指定したパーツを描画する
602
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
603
+ #_names_:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
604
+ #返却値:: 自分自身を返す
605
+ def pre_show(*names)
606
+ if names.length == 0
607
+ @pre_visibles.each_value{|sprite| sprite.show}
608
+ return self
609
+ end
610
+ names.each{|name|
611
+ @pre_visibles.add(name, @parts[name]) unless @pre_visibles.include?(name)
612
+ @pre_visibles[name].show
613
+ }
614
+ return self
615
+ end
616
+
617
+ #===パーツで指定したオブジェクトを隠蔽する
618
+ #[[Yukiスクリプトとして利用可能]]
619
+ #描画時に、指定したパーツを描画させないよう指定する
620
+ #_names_:: パーツ名(シンボル)、複数指定可能
621
+ #返却値:: 自分自身を返す
622
+ def pre_hide(*names)
623
+ if names.length == 0
624
+ @pre_visibles.each_value{|sprite| sprite.hide}
625
+ return self
626
+ end
627
+ names.each{|name| @pre_visibles[name].hide }
628
+ return self
629
+ end
630
+
631
+ #===パーツで指定した背景を表示する
632
+ #[[Yukiスクリプトとして利用可能]]
633
+ #描画時に、指定したパーツを描画する
634
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
635
+ #_names_:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
636
+ #返却値:: 自分自身を返す
637
+ def bg_show(*names)
638
+ if names.length == 0
639
+ @bgs.each_value{|sprite| sprite.show}
640
+ return self
641
+ end
457
642
  names.each{|name|
458
- @parts[name].hide
459
- @visibles.delete(name)
643
+ @bgs.add(name, @parts[name]) unless @bgs.include?(name)
644
+ @bgs[name].show
460
645
  }
461
646
  return self
462
647
  end
463
648
 
649
+ #===パーツで指定した背景を隠蔽する
650
+ #[[Yukiスクリプトとして利用可能]]
651
+ #描画時に、指定したパーツを描画させないよう指定する
652
+ #_names_:: パーツ名(シンボル)、複数指定可能
653
+ #返却値:: 自分自身を返す
654
+ def bg_hide(*names)
655
+ if names.length == 0
656
+ @bgs.each_value{|sprite| sprite.hide}
657
+ return self
658
+ end
659
+ names.each{|name| @bgs[name].hide }
660
+ return self
661
+ end
662
+
663
+ #===ファイル名で指定したスプライトを登録する
664
+ #[[Yukiスクリプトとして利用可能]]
665
+ #画面に表示するスプライトを登録する
666
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
667
+ #_name_:: スプライト名(重複するときは上書き)
668
+ #_filename_:: 読み込むファイル名
669
+ #_pre_:: pre_visiblesに登録するときはtrue、visiblesに登録するときはfalseを渡す
670
+ # 省略時はfalse
671
+ #返却値:: 自分自身を返す
672
+ def load_sprite(name, filename, pre=false)
673
+ spr = Sprite.new(:file=>filename, :type=>:ac)
674
+ @parts[name] = spr
675
+ @parts[name].hide
676
+ pre ? @pre_visibles.add(name, @parts[name]) : @visibles.add(name, @parts[name])
677
+ return self
678
+ end
679
+
680
+ #===背景を登録する
681
+ #[[Yukiスクリプトとして利用可能]]
682
+ #画面に表示する背景を登録する
683
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
684
+ #_name_:: スプライト名(重複するときは上書き)
685
+ #_filename_:: 読み込むファイル名
686
+ #返却値:: 自分自身を返す
687
+ def load_bg(name, filename)
688
+ spr = Sprite.new(:file=>filename, :type=>:ac)
689
+ @parts[name] = spr
690
+ @parts[name].hide
691
+ @bgs.add(name, @parts[name])
692
+ return self
693
+ end
694
+
695
+ #===BGMを登録する
696
+ #[[Yukiスクリプトとして利用可能]]
697
+ #音声ファイルを読み込み、BGMとして登録する
698
+ #登録したBGMはpartsメソッドを使って参照できる
699
+ #_name_:: スプライト名(重複するときは上書き)
700
+ #_filename_:: 読み込むファイル名
701
+ #返却値:: 自分自身を返す
702
+ def load_bgm(name, filename)
703
+ @parts[name] = Audio::BGM.new(filename)
704
+ return self
705
+ end
706
+
707
+ #===効果音を登録する
708
+ #[[Yukiスクリプトとして利用可能]]
709
+ #音声ファイルを読み込み、効果音として登録する
710
+ #登録した効果音はpartsメソッドを使って参照できる
711
+ #_name_:: スプライト名(重複するときは上書き)
712
+ #_filename_:: 読み込むファイル名
713
+ #返却値:: 自分自身を返す
714
+ def load_se(name, filename)
715
+ @parts[name] = Audio::SE.new(filename)
716
+ return self
717
+ end
718
+
464
719
  #===パーツで指定したオブジェクトの処理を開始する
465
720
  #[[Yukiスクリプトとして利用可能]]
466
721
  #nameで指定したパーツが持つ処理(例:アニメーション)を開始する。
@@ -1068,6 +1323,7 @@ module Miyako
1068
1323
  @pre_command.each{|proc| proc.call}
1069
1324
  @pre_cancel.each{|proc| proc.call}
1070
1325
  yield if block_given?
1326
+ @command_box_all.show if @command_box_all.object_id != @text_box_all.object_id
1071
1327
  @command_box.command(@command_box.create_choices_chain(choices, &chain_block))
1072
1328
  @result = nil
1073
1329
  selecting = true
@@ -1090,12 +1346,14 @@ module Miyako
1090
1346
  end
1091
1347
  @result = @command_box.result
1092
1348
  @command_box.finish_command
1349
+ @command_box_all.hide if @command_box_all.object_id != @text_box_all.object_id
1093
1350
  @text_box.release
1094
1351
  selecting = false
1095
1352
  reset_selecting
1096
1353
  elsif @select_cancel
1097
1354
  @result = @cancel
1098
1355
  @command_box.finish_command
1356
+ @command_box_all.hide if @command_box_all.object_id != @text_box_all.object_id
1099
1357
  @text_box.release
1100
1358
  selecting = false
1101
1359
  reset_selecting
@@ -1103,7 +1361,7 @@ module Miyako
1103
1361
  @command_box.move_cursor(*@select_amount)
1104
1362
  reset_selecting
1105
1363
  elsif @mouse_amount
1106
- @command_box.attach_cursor(*@mouse_amount.to_a)
1364
+ @command_box.attach_cursor(*@mouse_amount.to_a) if @mouse_enable
1107
1365
  reset_selecting
1108
1366
  end
1109
1367
  post_process
@@ -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
data/lib/Miyako/miyako.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  #=コンテンツ作成ライブラリMiyako2.1
4
4
  #
5
5
  #Authors:: サイロス誠
6
- #Version:: 2.1.1
6
+ #Version:: 2.1.3
7
7
  #Copyright:: 2007-2009 Cyross Makoto
8
8
  #License:: LGPL2.1
9
9
  #
@@ -60,7 +60,7 @@ Thread.abort_on_exception = true
60
60
 
61
61
  #==Miyako基幹モジュール
62
62
  module Miyako
63
- VERSION = "2.1.2"
63
+ VERSION = "2.1.4"
64
64
 
65
65
  #===アプリケーション実行中に演奏する音楽のサンプリングレートを指定する
66
66
  #単位はHz(周波数)
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-miyako-mswin32
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyross Makoto
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-25 00:00:00 +09:00
12
+ date: 2009-11-10 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies: []
15
15