cyross-ruby-miyako-mswin32 2.0.5.1.1 → 2.1.0

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.
Files changed (76) hide show
  1. data/README +1089 -929
  2. data/install_miyako.rb +87 -61
  3. data/lib/Miyako/API/audio.rb +572 -198
  4. data/lib/Miyako/API/basic_data.rb +825 -573
  5. data/lib/Miyako/API/bitmap.rb +534 -507
  6. data/lib/Miyako/API/choices.rb +481 -475
  7. data/lib/Miyako/API/collision.rb +486 -460
  8. data/lib/Miyako/API/diagram.rb +586 -561
  9. data/lib/Miyako/API/drawing.rb +151 -151
  10. data/lib/Miyako/API/exceptions.rb +105 -0
  11. data/lib/Miyako/API/fixedmap.rb +462 -428
  12. data/lib/Miyako/API/font.rb +430 -403
  13. data/lib/Miyako/API/input.rb +456 -447
  14. data/lib/Miyako/API/layout.rb +636 -433
  15. data/lib/Miyako/API/map.rb +583 -529
  16. data/lib/Miyako/API/map_event.rb +222 -198
  17. data/lib/Miyako/API/modules.rb +305 -109
  18. data/lib/Miyako/API/movie.rb +166 -154
  19. data/lib/Miyako/API/parts.rb +276 -189
  20. data/lib/Miyako/API/plane.rb +205 -166
  21. data/lib/Miyako/API/screen.rb +341 -325
  22. data/lib/Miyako/API/shape.rb +443 -443
  23. data/lib/Miyako/API/sprite.rb +771 -752
  24. data/lib/Miyako/API/sprite_animation.rb +490 -481
  25. data/lib/Miyako/API/sprite_list.rb +884 -0
  26. data/lib/Miyako/API/spriteunit.rb +168 -147
  27. data/lib/Miyako/API/story.rb +350 -300
  28. data/lib/Miyako/API/textbox.rb +770 -725
  29. data/lib/Miyako/API/utility.rb +419 -388
  30. data/lib/Miyako/API/viewport.rb +189 -139
  31. data/lib/Miyako/API/yuki.rb +1226 -996
  32. data/lib/Miyako/EXT/miyako_cairo.rb +62 -62
  33. data/lib/Miyako/EXT/raster_scroll.rb +138 -138
  34. data/lib/Miyako/EXT/slides.rb +157 -157
  35. data/lib/Miyako/miyako.rb +201 -171
  36. data/lib/Miyako/miyako_no_katana.so +0 -0
  37. data/lib/Miyako/miyako_require_only.rb +35 -0
  38. data/sample/Animation1/m1ku.rb +68 -68
  39. data/sample/Animation2/lex.rb +96 -96
  40. data/sample/Diagram_sample/diagram_sample_yuki2.rb +328 -386
  41. data/sample/Room3/blue.rb +297 -297
  42. data/sample/Room3/ending.rb +180 -180
  43. data/sample/Room3/green.rb +220 -220
  44. data/sample/Room3/main.rb +119 -119
  45. data/sample/Room3/main_component.rb +59 -59
  46. data/sample/Room3/red.rb +227 -227
  47. data/sample/Room3/room3.rb +25 -27
  48. data/sample/Room3/title.rb +184 -184
  49. data/sample/ball_action_sample.rb +205 -204
  50. data/sample/blit_rop.rb +70 -70
  51. data/sample/cairo_sample.rb +25 -25
  52. data/sample/circle_collision_test.rb +66 -62
  53. data/sample/collision_test.rb +33 -33
  54. data/sample/collision_test2.rb +108 -104
  55. data/sample/fixed_map_test/fixed_map_sample.rb +140 -140
  56. data/sample/fixed_map_test/readme.txt +72 -72
  57. data/sample/map_test/chara.rb +58 -58
  58. data/sample/map_test/main_parts.rb +69 -69
  59. data/sample/map_test/main_scene.rb +153 -153
  60. data/sample/map_test/map_manager.rb +75 -75
  61. data/sample/map_test/map_test.rb +23 -23
  62. data/sample/map_test/oasis.rb +71 -71
  63. data/sample/map_test/readme.txt +89 -89
  64. data/sample/map_test/route.rb +157 -157
  65. data/sample/map_test/town.rb +74 -74
  66. data/sample/polygon_test.rb +35 -35
  67. data/sample/rasterscroll.rb +24 -24
  68. data/sample/takahashi.rb +42 -42
  69. data/sample/textbox_sample.rb +189 -189
  70. data/sample/transform.rb +54 -54
  71. data/sample/utility_test.rb +73 -73
  72. data/sample/utility_test2.rb +61 -61
  73. data/sample/utility_test3.rb +64 -64
  74. data/sample/utility_test4.rb +73 -73
  75. data/uninstall_miyako.rb +19 -19
  76. metadata +5 -2
@@ -1,23 +1,23 @@
1
- # -*- encoding: utf-8 -*-
2
- #! /usr/bin/ruby
3
- # map_test
4
-
5
- require 'singleton'
6
-
7
- require 'Miyako/miyako'
8
-
9
- include Miyako
10
-
11
- Screen.fps = 60
12
- #Screen.fps_view = true
13
-
14
- require 'main_parts'
15
- require 'chara'
16
- require 'map_manager'
17
- require 'route'
18
- require 'oasis'
19
- require 'town'
20
- require 'main_scene'
21
-
22
- mt = Story.new
23
- mt.run(MainScene)
1
+ # -*- encoding: utf-8 -*-
2
+ #! /usr/bin/ruby
3
+ # map_test
4
+
5
+ require 'singleton'
6
+
7
+ require 'Miyako/miyako'
8
+
9
+ include Miyako
10
+
11
+ Screen.fps = 60
12
+ #Screen.fps_view = true
13
+
14
+ require 'main_parts'
15
+ require 'chara'
16
+ require 'map_manager'
17
+ require 'route'
18
+ require 'oasis'
19
+ require 'town'
20
+ require 'main_scene'
21
+
22
+ mt = Story.new
23
+ mt.run(MainScene)
@@ -1,71 +1,71 @@
1
- # -*- encoding: utf-8 -*-
2
- #オアシスを表すイベントクラス
3
- class EventOasis
4
- include MapEvent
5
-
6
- attr_reader :margin
7
-
8
- def init(map, x, y)
9
- # イベント用チップを取得
10
- @spr = Sprite.new({:filename => "map2.png", :type => :color_key})
11
- @spr.oy = @spr.ow = @spr.oh = 32
12
- @spr.move_to(x, y)
13
- @coll = Collision.new([0, 0, @spr.ow, @spr.oh])
14
- @pos = Point.new(x, y)
15
- @margin = Size.new(0, 0)
16
- @parts = CommonParts.instance
17
- @yuki = Yuki.new
18
- @yuki.select_textbox(@parts.box[:box])
19
- end
20
-
21
- # キャラの立ち位置とイベントの位置が重なり合っているかの判別
22
- def met?(param = nil)
23
- return @coll.collision?(@pos, param[:collision], param[:pos])
24
- end
25
-
26
- # イベントの実行
27
- def start(param = nil)
28
- @yuki.start_plot(plot)
29
- end
30
-
31
- def executing?
32
- @yuki.executing?
33
- end
34
-
35
- def plot
36
- yuki_plot do
37
- text " ここは"
38
- color(:cyan){"オアシス"}
39
- text "のようだ。\n しかし、普通は砂漠にあるはずなのに・・・。"
40
- pause
41
- clear
42
- end
43
- end
44
-
45
- def move(dx, dy)
46
- @spr.move(-dx, -dy)
47
- end
48
-
49
- def move_to(x, y)
50
- @spr.move_to(x, y)
51
- end
52
-
53
- def update(map_obj, events, params)
54
- if @yuki.executing?
55
- @yuki.update
56
- @parts.box.update_animation
57
- end
58
- end
59
-
60
- # イベントキャラクタの描画
61
- def render
62
- @spr.move(-@margin.w, -@margin.h)
63
- @spr.render
64
- @spr.move(@margin.w, @margin.h)
65
- end
66
-
67
- #(Yuki起動時)メッセージボックスの表示
68
- def render_box
69
- @parts.box.render if @yuki.executing?
70
- end
71
- end
1
+ # -*- encoding: utf-8 -*-
2
+ #オアシスを表すイベントクラス
3
+ class EventOasis
4
+ include MapEvent
5
+
6
+ attr_reader :margin
7
+
8
+ def init(map, x, y)
9
+ # イベント用チップを取得
10
+ @spr = Sprite.new({:filename => "map2.png", :type => :color_key})
11
+ @spr.oy = @spr.ow = @spr.oh = 32
12
+ @spr.move_to!(x, y)
13
+ @coll = Collision.new([0, 0, @spr.ow, @spr.oh])
14
+ @pos = Point.new(x, y)
15
+ @margin = Size.new(0, 0)
16
+ @parts = CommonParts.instance
17
+ @yuki = Yuki.new
18
+ @yuki.select_textbox(@parts.box[:box])
19
+ end
20
+
21
+ # キャラの立ち位置とイベントの位置が重なり合っているかの判別
22
+ def met?(param = nil)
23
+ return @coll.collision?(@pos, param[:collision], param[:pos])
24
+ end
25
+
26
+ # イベントの実行
27
+ def start(param = nil)
28
+ @yuki.start_plot(plot)
29
+ end
30
+
31
+ def executing?
32
+ @yuki.executing?
33
+ end
34
+
35
+ def plot
36
+ yuki_plot do
37
+ text " ここは"
38
+ color(:cyan){"オアシス"}
39
+ text "のようだ。\n しかし、普通は砂漠にあるはずなのに・・・。"
40
+ pause
41
+ clear
42
+ end
43
+ end
44
+
45
+ def move!(dx, dy)
46
+ @spr.move!(-dx, -dy)
47
+ end
48
+
49
+ def move_to!(x, y)
50
+ @spr.move_to!(x, y)
51
+ end
52
+
53
+ def update(map_obj, events, params)
54
+ if @yuki.executing?
55
+ @yuki.update
56
+ @parts.box.update_animation
57
+ end
58
+ end
59
+
60
+ # イベントキャラクタの描画
61
+ def render
62
+ @spr.move!(-@margin.w, -@margin.h)
63
+ @spr.render
64
+ @spr.move!(@margin.w, @margin.h)
65
+ end
66
+
67
+ #(Yuki起動時)メッセージボックスの表示
68
+ def render_box
69
+ @parts.box.render if @yuki.executing?
70
+ end
71
+ end
@@ -1,89 +1,89 @@
1
- *******************************************************************************
2
- 【 作者名 】 サイロス誠
3
- 【 ソフト名 】 Miyako v2.0サンプル(マップ移動)
4
- 【 バージョン 】 2.0
5
- 【 作成日 】 2009/04/12
6
- 【 種別 】 フリーウェア
7
- 【 開発言語 】 Ruby 1.9.1-p0
8
- 【 ランタイム 】 Miyako v2.0
9
- 【 対応機種 】 Windows 2000/XP/Vista、Linux
10
- 【 再配布 】 修正BSDライセンスによる
11
- 【 転載 】 修正BSDライセンスによる
12
- 【ホームページ】 http://www.twin.ne.jp/~cyross/Miyako/
13
- 【 連絡先 】 cyross@po.twin.ne.jp
14
- *******************************************************************************
15
-
16
- ・概要
17
-
18
-  このプログラムは、Miyako v2.0以降に対応する、Miyakoサンプルプログラムです。
19
-  フィールドマップ上を移動します。
20
-  ボタンを押すことで、道しるべ、街などに対するメッセージが表示されたり、
21
-  コマンドが表示されるようになっています。
22
-
23
- ・Miyakoについて
24
-
25
-  Miyakoに関しては、以下のURLを参考にしてください。
26
- (メインサイト)
27
- http://www.twin.ne.jp/~cyross/Miyako/
28
- (Wiki)
29
- http://wiki.fdiary.net/MiyakoDevSrc/
30
-
31
-  Miyako(Ruby、Ruby/SDL含む)のインストールに関しましては、
32
- 上記URLを辿って得られるアーカイブされたMiyakoライブラリを
33
- 展開すると、readme.txtが得られますので、そちらをご参照下さい。
34
-
35
-  本サンプルでは、MiyakoがWindows上で動作することを前提にしています。
36
- (インストールしたRuby実行環境がActiveRubyであることも前提に
37
-  しています)
38
-
39
- ・起動方法
40
-
41
-  エクスプローラーを開き、本サンプルのフォルダ内で、「map_test.rb」を
42
- ダブルクリックします。
43
-  もしくは、コマンドライン上で動かす場合は、本サンプルのディレクトリに
44
- 移動して、以下のコマンドを入力します。
45
-
46
-  ruby map_test.rb
47
-
48
- ・免責事項
49
-
50
-  本サンプルは無保証です。もし本サンプルを使用することによる不具合・トラブル
51
- が起こったとしても、いかなるトラブルに対する責任を負わないことをご了承下さい。
52
-
53
-  本サンプルは、修正BSDライセンスに基づいた転載・再配布を許可します。
54
-
55
- ・修正履歴
56
-
57
- (2.0)
58
- ・2.0に対応
59
-  (1.0.1)
60
-  ・移動キーを押したときに、横方向を優先するように修正
61
-  ・斜め方向を押したときに、キャラクタが消える不具合を修正
62
-  ・コリジョンをMapManagerクラスに移動(マップ実座標の存在を強調)
63
-  ・スクリプトを複数ファイルに分割
64
-  (1.0.2)
65
-  ・1.5RC3に対応
66
-
67
- ・BSDライセンス文
68
-
69
- Copyright (c) 2008, Cyross Makoto
70
-
71
- All rights reserved.
72
-
73
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
74
-
75
- ・Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
76
- ・Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
77
- ・Neither the name of the Cyross Makoto nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
78
-
79
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
80
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
81
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
82
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
83
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
84
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
85
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
86
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
87
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
88
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
89
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1
+ *******************************************************************************
2
+ 【 作者名 】 サイロス誠
3
+ 【 ソフト名 】 Miyako v2.0サンプル(マップ移動)
4
+ 【 バージョン 】 2.0
5
+ 【 作成日 】 2009/04/12
6
+ 【 種別 】 フリーウェア
7
+ 【 開発言語 】 Ruby 1.9.1-p0
8
+ 【 ランタイム 】 Miyako v2.0
9
+ 【 対応機種 】 Windows 2000/XP/Vista、Linux
10
+ 【 再配布 】 修正BSDライセンスによる
11
+ 【 転載 】 修正BSDライセンスによる
12
+ 【ホームページ】 http://www.twin.ne.jp/~cyross/Miyako/
13
+ 【 連絡先 】 cyross@po.twin.ne.jp
14
+ *******************************************************************************
15
+
16
+ ・概要
17
+
18
+  このプログラムは、Miyako v2.0以降に対応する、Miyakoサンプルプログラムです。
19
+  フィールドマップ上を移動します。
20
+  ボタンを押すことで、道しるべ、街などに対するメッセージが表示されたり、
21
+  コマンドが表示されるようになっています。
22
+
23
+ ・Miyakoについて
24
+
25
+  Miyakoに関しては、以下のURLを参考にしてください。
26
+ (メインサイト)
27
+ http://www.twin.ne.jp/~cyross/Miyako/
28
+ (Wiki)
29
+ http://wiki.fdiary.net/MiyakoDevSrc/
30
+
31
+  Miyako(Ruby、Ruby/SDL含む)のインストールに関しましては、
32
+ 上記URLを辿って得られるアーカイブされたMiyakoライブラリを
33
+ 展開すると、readme.txtが得られますので、そちらをご参照下さい。
34
+
35
+  本サンプルでは、MiyakoがWindows上で動作することを前提にしています。
36
+ (インストールしたRuby実行環境がActiveRubyであることも前提に
37
+  しています)
38
+
39
+ ・起動方法
40
+
41
+  エクスプローラーを開き、本サンプルのフォルダ内で、「map_test.rb」を
42
+ ダブルクリックします。
43
+  もしくは、コマンドライン上で動かす場合は、本サンプルのディレクトリに
44
+ 移動して、以下のコマンドを入力します。
45
+
46
+  ruby map_test.rb
47
+
48
+ ・免責事項
49
+
50
+  本サンプルは無保証です。もし本サンプルを使用することによる不具合・トラブル
51
+ が起こったとしても、いかなるトラブルに対する責任を負わないことをご了承下さい。
52
+
53
+  本サンプルは、修正BSDライセンスに基づいた転載・再配布を許可します。
54
+
55
+ ・修正履歴
56
+
57
+ (2.0)
58
+ ・2.0に対応
59
+  (1.0.1)
60
+  ・移動キーを押したときに、横方向を優先するように修正
61
+  ・斜め方向を押したときに、キャラクタが消える不具合を修正
62
+  ・コリジョンをMapManagerクラスに移動(マップ実座標の存在を強調)
63
+  ・スクリプトを複数ファイルに分割
64
+  (1.0.2)
65
+  ・1.5RC3に対応
66
+
67
+ ・BSDライセンス文
68
+
69
+ Copyright (c) 2008, Cyross Makoto
70
+
71
+ All rights reserved.
72
+
73
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
74
+
75
+ ・Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
76
+ ・Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
77
+ ・Neither the name of the Cyross Makoto nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
78
+
79
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
80
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
81
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
82
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
83
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
84
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
85
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
86
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
87
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
88
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
89
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,157 +1,157 @@
1
- # -*- encoding: utf-8 -*-
2
- # 道しるべ(1)を表すイベントクラス
3
- class EventRouteMarker
4
- include MapEvent
5
-
6
- attr_reader :margin, :collision
7
-
8
- def init(map, x, y)
9
- # イベント用チップを取得
10
- @spr = Sprite.new({:filename => "map2.png", :type => :color_key})
11
- @spr.ow = @spr.oh = 32
12
- @spr.ox = 96
13
- @spr.move_to(x, y)
14
- @coll = Collision.new([0, 0, @spr.ow, @spr.oh])
15
- @pos = Point.new(x, y)
16
- @margin = Size.new(0, 0)
17
- @parts = CommonParts.instance
18
- @yuki = Yuki.new
19
- @yuki.setup(@parts.box[:box]){|box|
20
- select_textbox(box)
21
- }
22
- end
23
-
24
- # キャラの立ち位置とイベントの位置が重なり合っているかの判別
25
- def met?(param = nil)
26
- return @coll.collision?(@pos, param[:collision], param[:pos])
27
- end
28
-
29
- # イベントの実行
30
- def start(param = nil)
31
- @yuki.start_plot(plot)
32
- end
33
-
34
- def executing?
35
- @yuki.executing?
36
- end
37
-
38
- def plot
39
- yuki_plot do
40
- text " ここに立て札がある。"
41
- pause
42
- clear
43
- text " しかし、そこには何も書かれていない。"
44
- pause
45
- clear
46
- end
47
- end
48
-
49
- def move(dx, dy)
50
- @spr.move(-dx, -dy)
51
- end
52
-
53
- def move_to(x, y)
54
- @spr.move_to(x, y)
55
- end
56
-
57
- def update(map_obj, events, params)
58
- if @yuki.executing?
59
- @yuki.update
60
- @parts.box.update_animation
61
- end
62
- end
63
-
64
- # イベントキャラクタの描画
65
- def render
66
- @spr.move(-@margin.w, -@margin.h)
67
- @spr.render
68
- @spr.move(@margin.w, @margin.h)
69
- end
70
-
71
- #(Yuki起動時)メッセージボックスの表示
72
- def render_box
73
- @parts.box.render if @yuki.executing?
74
- end
75
- end
76
-
77
- # 道しるべ(2)を表すイベントクラス
78
- class EventRouteMarker2
79
- include MapEvent
80
-
81
- attr_reader :margin
82
-
83
- def init(map, x, y)
84
- # イベント用チップを取得
85
- @spr = Sprite.new({:filename => "map2.png", :type => :color_key})
86
- @spr.ow = @spr.oh = 32
87
- @spr.ox = 96
88
- @spr.move(x, y)
89
- @coll = Collision.new([0, 0, @spr.ow, @spr.oh])
90
- @pos = Point.new(x, y)
91
- @margin = Size.new(0, 0)
92
- @parts = CommonParts.instance
93
- @yuki = Yuki.new
94
- @yuki.setup(@parts.box[:box]){|box|
95
- select_textbox(box)
96
- }
97
- end
98
-
99
- # キャラの立ち位置とイベントの位置が重なり合っているかの判別
100
- def met?(param = nil)
101
- return @coll.collision?(@pos, param[:collision], param[:pos])
102
- end
103
-
104
- # イベントの開始
105
- def start(param = nil)
106
- @yuki.start_plot(plot)
107
- end
108
-
109
- def executing?
110
- @yuki.executing?
111
- end
112
-
113
- def plot
114
- yuki_plot do
115
- text " ここに立て札がある。"
116
- pause
117
- cr
118
- text " 読んでみよう。"
119
- pause
120
- clear
121
- color(:blue){"東"}.text("・・・果て野")
122
- cr
123
- color(:blue){"西"}.text("・・・荒れ海")
124
- cr
125
- color(:blue){"南"}.text("・・・グリージアの街")
126
- pause
127
- clear
128
- end
129
- end
130
-
131
- def move(dx, dy)
132
- @spr.move(-dx, -dy)
133
- end
134
-
135
- def move_to(x, y)
136
- @spr.move_to(x, y)
137
- end
138
-
139
- def update(map_obj, events, params)
140
- if @yuki.executing?
141
- @yuki.update
142
- @parts.box.update_animation
143
- end
144
- end
145
-
146
- # イベントキャラクタの描画
147
- def render
148
- @spr.move(-@margin.w, -@margin.h)
149
- @spr.render
150
- @spr.move(@margin.w, @margin.h)
151
- end
152
-
153
- #(Yuki起動時)メッセージボックスの表示
154
- def render_box
155
- @parts.box.render if @yuki.executing?
156
- end
157
- end
1
+ # -*- encoding: utf-8 -*-
2
+ # 道しるべ(1)を表すイベントクラス
3
+ class EventRouteMarker
4
+ include MapEvent
5
+
6
+ attr_reader :margin, :collision
7
+
8
+ def init(map, x, y)
9
+ # イベント用チップを取得
10
+ @spr = Sprite.new({:filename => "map2.png", :type => :color_key})
11
+ @spr.ow = @spr.oh = 32
12
+ @spr.ox = 96
13
+ @spr.move_to!(x, y)
14
+ @coll = Collision.new([0, 0, @spr.ow, @spr.oh])
15
+ @pos = Point.new(x, y)
16
+ @margin = Size.new(0, 0)
17
+ @parts = CommonParts.instance
18
+ @yuki = Yuki.new
19
+ @yuki.setup(@parts.box[:box]){|box|
20
+ select_textbox(box)
21
+ }
22
+ end
23
+
24
+ # キャラの立ち位置とイベントの位置が重なり合っているかの判別
25
+ def met?(param = nil)
26
+ return @coll.collision?(@pos, param[:collision], param[:pos])
27
+ end
28
+
29
+ # イベントの実行
30
+ def start(param = nil)
31
+ @yuki.start_plot(plot)
32
+ end
33
+
34
+ def executing?
35
+ @yuki.executing?
36
+ end
37
+
38
+ def plot
39
+ yuki_plot do
40
+ text " ここに立て札がある。"
41
+ pause
42
+ clear
43
+ text " しかし、そこには何も書かれていない。"
44
+ pause
45
+ clear
46
+ end
47
+ end
48
+
49
+ def move!(dx, dy)
50
+ @spr.move!(-dx, -dy)
51
+ end
52
+
53
+ def move_to!(x, y)
54
+ @spr.move_to!(x, y)
55
+ end
56
+
57
+ def update(map_obj, events, params)
58
+ if @yuki.executing?
59
+ @yuki.update
60
+ @parts.box.update_animation
61
+ end
62
+ end
63
+
64
+ # イベントキャラクタの描画
65
+ def render
66
+ @spr.move!(-@margin.w, -@margin.h)
67
+ @spr.render
68
+ @spr.move!(@margin.w, @margin.h)
69
+ end
70
+
71
+ #(Yuki起動時)メッセージボックスの表示
72
+ def render_box
73
+ @parts.box.render if @yuki.executing?
74
+ end
75
+ end
76
+
77
+ # 道しるべ(2)を表すイベントクラス
78
+ class EventRouteMarker2
79
+ include MapEvent
80
+
81
+ attr_reader :margin
82
+
83
+ def init(map, x, y)
84
+ # イベント用チップを取得
85
+ @spr = Sprite.new({:filename => "map2.png", :type => :color_key})
86
+ @spr.ow = @spr.oh = 32
87
+ @spr.ox = 96
88
+ @spr.move!(x, y)
89
+ @coll = Collision.new([0, 0, @spr.ow, @spr.oh])
90
+ @pos = Point.new(x, y)
91
+ @margin = Size.new(0, 0)
92
+ @parts = CommonParts.instance
93
+ @yuki = Yuki.new
94
+ @yuki.setup(@parts.box[:box]){|box|
95
+ select_textbox(box)
96
+ }
97
+ end
98
+
99
+ # キャラの立ち位置とイベントの位置が重なり合っているかの判別
100
+ def met?(param = nil)
101
+ return @coll.collision?(@pos, param[:collision], param[:pos])
102
+ end
103
+
104
+ # イベントの開始
105
+ def start(param = nil)
106
+ @yuki.start_plot(plot)
107
+ end
108
+
109
+ def executing?
110
+ @yuki.executing?
111
+ end
112
+
113
+ def plot
114
+ yuki_plot do
115
+ text " ここに立て札がある。"
116
+ pause
117
+ cr
118
+ text " 読んでみよう。"
119
+ pause
120
+ clear
121
+ color(:blue){"東"}.text("・・・果て野")
122
+ cr
123
+ color(:blue){"西"}.text("・・・荒れ海")
124
+ cr
125
+ color(:blue){"南"}.text("・・・グリージアの街")
126
+ pause
127
+ clear
128
+ end
129
+ end
130
+
131
+ def move!(dx, dy)
132
+ @spr.move!(-dx, -dy)
133
+ end
134
+
135
+ def move_to!(x, y)
136
+ @spr.move_to!(x, y)
137
+ end
138
+
139
+ def update(map_obj, events, params)
140
+ if @yuki.executing?
141
+ @yuki.update
142
+ @parts.box.update_animation
143
+ end
144
+ end
145
+
146
+ # イベントキャラクタの描画
147
+ def render
148
+ @spr.move!(-@margin.w, -@margin.h)
149
+ @spr.render
150
+ @spr.move!(@margin.w, @margin.h)
151
+ end
152
+
153
+ #(Yuki起動時)メッセージボックスの表示
154
+ def render_box
155
+ @parts.box.render if @yuki.executing?
156
+ end
157
+ end