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 +84 -3
- data/lib/Miyako/API/i_yuki.rb +274 -16
- data/lib/Miyako/API/textbox.rb +1 -1
- data/lib/Miyako/API/yuki.rb +274 -16
- data/lib/Miyako/EXT/slides.rb +119 -10
- data/lib/Miyako/miyako.rb +2 -2
- data/lib/Miyako/miyako_no_katana.so +0 -0
- metadata +2 -2
data/README
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
*******************************************************************************
|
2
2
|
【 作者名 】 サイロス誠
|
3
3
|
【 ソフト名 】 Interactive Media Authoring System "Miyako"
|
4
|
-
【 バージョン 】 2.1.
|
5
|
-
【 作成日 】 2009/10
|
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.
|
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ファイルは「れ~どめ~えじた~」によって作成されました。
|
data/lib/Miyako/API/i_yuki.rb
CHANGED
@@ -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
|
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
|
-
@
|
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].
|
459
|
-
@
|
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
|
data/lib/Miyako/API/textbox.rb
CHANGED
data/lib/Miyako/API/yuki.rb
CHANGED
@@ -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
|
-
|
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
|
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
|
-
@
|
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].
|
403
|
-
@
|
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
|
data/lib/Miyako/EXT/slides.rb
CHANGED
@@ -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
|
-
|
84
|
-
set_layout_size(*(
|
85
|
-
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
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.
|
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.
|
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.
|
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
|
12
|
+
date: 2009-11-10 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|