cyross-ruby-miyako 2.0.5.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 (91) hide show
  1. data/README +1092 -929
  2. data/Rakefile +7 -7
  3. data/defines.h +144 -144
  4. data/extern.h +29 -29
  5. data/install_miyako.rb +87 -87
  6. data/lib/Miyako/API/audio.rb +572 -198
  7. data/lib/Miyako/API/basic_data.rb +825 -573
  8. data/lib/Miyako/API/bitmap.rb +534 -507
  9. data/lib/Miyako/API/choices.rb +481 -475
  10. data/lib/Miyako/API/collision.rb +486 -460
  11. data/lib/Miyako/API/diagram.rb +586 -561
  12. data/lib/Miyako/API/drawing.rb +151 -151
  13. data/lib/Miyako/API/exceptions.rb +105 -0
  14. data/lib/Miyako/API/fixedmap.rb +462 -428
  15. data/lib/Miyako/API/font.rb +430 -403
  16. data/lib/Miyako/API/input.rb +456 -447
  17. data/lib/Miyako/API/layout.rb +636 -433
  18. data/lib/Miyako/API/map.rb +583 -529
  19. data/lib/Miyako/API/map_event.rb +222 -198
  20. data/lib/Miyako/API/modules.rb +357 -109
  21. data/lib/Miyako/API/movie.rb +166 -154
  22. data/lib/Miyako/API/parts.rb +276 -189
  23. data/lib/Miyako/API/plane.rb +205 -166
  24. data/lib/Miyako/API/screen.rb +341 -325
  25. data/lib/Miyako/API/shape.rb +443 -443
  26. data/lib/Miyako/API/sprite.rb +771 -752
  27. data/lib/Miyako/API/sprite_animation.rb +490 -481
  28. data/lib/Miyako/API/sprite_list.rb +1135 -0
  29. data/lib/Miyako/API/spriteunit.rb +168 -147
  30. data/lib/Miyako/API/story.rb +350 -300
  31. data/lib/Miyako/API/textbox.rb +770 -725
  32. data/lib/Miyako/API/utility.rb +419 -388
  33. data/lib/Miyako/API/viewport.rb +189 -139
  34. data/lib/Miyako/API/yuki.rb +1226 -996
  35. data/lib/Miyako/EXT/miyako_cairo.rb +62 -62
  36. data/lib/Miyako/EXT/raster_scroll.rb +138 -138
  37. data/lib/Miyako/EXT/slides.rb +157 -157
  38. data/lib/Miyako/miyako.rb +201 -171
  39. data/lib/Miyako/miyako_require_only.rb +35 -0
  40. data/miyako_basicdata.c +590 -590
  41. data/miyako_bitmap.c +1225 -1225
  42. data/miyako_collision.c +403 -403
  43. data/miyako_drawing.c +187 -187
  44. data/miyako_font.c +334 -334
  45. data/miyako_hsv.c +830 -830
  46. data/miyako_input_audio.c +254 -0
  47. data/miyako_layout.c +191 -191
  48. data/miyako_no_katana.c +1078 -1074
  49. data/miyako_sprite2.c +431 -0
  50. data/miyako_transform.c +438 -438
  51. data/miyako_utility.c +288 -288
  52. data/sample/Animation1/m1ku.rb +68 -68
  53. data/sample/Animation2/lex.rb +96 -96
  54. data/sample/Diagram_sample/diagram_sample_yuki2.rb +328 -386
  55. data/sample/Room3/blue.rb +297 -297
  56. data/sample/Room3/ending.rb +180 -180
  57. data/sample/Room3/green.rb +220 -220
  58. data/sample/Room3/main.rb +119 -119
  59. data/sample/Room3/main_component.rb +59 -59
  60. data/sample/Room3/red.rb +227 -227
  61. data/sample/Room3/room3.rb +25 -27
  62. data/sample/Room3/title.rb +184 -184
  63. data/sample/ball_action_sample.rb +204 -204
  64. data/sample/blit_rop.rb +70 -70
  65. data/sample/cairo_sample.rb +25 -25
  66. data/sample/circle_collision_test.rb +66 -66
  67. data/sample/collision_test.rb +33 -33
  68. data/sample/collision_test2.rb +108 -108
  69. data/sample/fixed_map_test/fixed_map_sample.rb +140 -140
  70. data/sample/fixed_map_test/readme.txt +72 -72
  71. data/sample/map_test/chara.rb +58 -58
  72. data/sample/map_test/main_parts.rb +69 -69
  73. data/sample/map_test/main_scene.rb +153 -153
  74. data/sample/map_test/map_manager.rb +75 -75
  75. data/sample/map_test/map_test.rb +23 -23
  76. data/sample/map_test/oasis.rb +71 -71
  77. data/sample/map_test/readme.txt +89 -89
  78. data/sample/map_test/route.rb +157 -157
  79. data/sample/map_test/town.rb +74 -74
  80. data/sample/polygon_test.rb +35 -35
  81. data/sample/rasterscroll.rb +24 -24
  82. data/sample/takahashi.rb +42 -42
  83. data/sample/textbox_sample.rb +189 -189
  84. data/sample/transform.rb +54 -54
  85. data/sample/utility_test.rb +73 -73
  86. data/sample/utility_test2.rb +61 -61
  87. data/sample/utility_test3.rb +64 -64
  88. data/sample/utility_test4.rb +73 -73
  89. data/uninstall_miyako.rb +19 -19
  90. data/win/miyako_no_katana.so +0 -0
  91. metadata +7 -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