cyross-ruby-miyako 2.0.5.1.0 → 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,198 +1,222 @@
1
- # -*- encoding: utf-8 -*-
2
- =begin
3
- --
4
- Miyako v2.0
5
- Copyright (C) 2007-2009 Cyross Makoto
6
-
7
- This library is free software; you can redistribute it and/or
8
- modify it under the terms of the GNU Lesser General Public
9
- License as published by the Free Software Foundation; either
10
- version 2.1 of the License, or (at your option) any later version.
11
-
12
- This library is distributed in the hope that it will be useful,
13
- but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
- Lesser General Public License for more details.
16
-
17
- You should have received a copy of the GNU Lesser General Public
18
- License along with this library; if not, write to the Free Software
19
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
- ++
21
- =end
22
-
23
- require 'csv'
24
- require 'forwardable'
25
-
26
- module Miyako
27
- #==マップ上のイベント全体を管理するクラス
28
- #Map/FixedMapクラス内で使用する
29
- #使い方:
30
- #
31
- #(1)インスタンスを生成する
32
- #
33
- #em = MapEventManager.new
34
- #
35
- #(2)MapEventクラスとIDを登録する
36
- #
37
- #(例)MapEventモジュールをmixinしたクラスXを、ID=0のイベントとして登録
38
- #
39
- #em.add(0, X)
40
- #
41
- #(3)Map/FixedMapクラスインスタンス生成時に引数として渡す
42
- #
43
- #@map = Map.new(...,em)
44
- #
45
- #(注)登録するIDは、イベントレイヤー上の番号と対応しておくこと
46
- class MapEventManager
47
- #===インスタンスを生成する
48
- #_map_obj_:: Managerが属するMap/FixedMapクラスのインスタンス
49
- #返却値:: 生成されたインスタンス
50
- def initialize
51
- @map = nil
52
- @id2event = Hash.new
53
- end
54
-
55
- def set(map) #:nodoc:
56
- @map = map
57
- end
58
-
59
- #===イベントクラスをマップに追加登録する
60
- #_id_:: マップ(イベントレイヤ)上の番号。
61
- #イベントレイヤ上に存在しない番号を渡してもエラーや警告は発しない
62
- #_event_:: イベントクラス。クラスのインスタンスではないことに注意!
63
- #返却値:: 自分自身を返す
64
- def add(id, event)
65
- @id2event[id] = event
66
- return self
67
- end
68
-
69
- #===イベントが登録されているかを確認する
70
- #引数で渡した番号に対応するイベントクラスが登録されているかどうかを確認する
71
- #_id_:: イベントクラスに対応した番号
72
- #返却値:: イベントクラスが登録されている時はtrueを返す
73
- def include?(id)
74
- raise MiyakoError, "This MapEventManager instance is not set Map/FixedMap instance!" unless @map
75
- return @id2event.has_key?(id)
76
- end
77
-
78
- #===イベントのインスタンスを生成する(番号指定)
79
- #インスタンス生成と同時に、マップ上の座標を渡して初期位置を設定する
80
- #登録していないIDを指定するとエラーになる
81
- #
82
- #設置は、マップ上の座標に設置する。表示上の座標ではない事に注意。
83
- #_id_:: イベントクラスと登録した際の番号
84
- #_x_:: イベントを設置する位置(X座標)
85
- #_y_:: イベントを設置する位置(Y座標)
86
- #返却値:: 生成したインスタンス
87
- def create(id, x = 0, y = 0)
88
- raise MiyakoError, "This MapEventManager instance is not set Map/FixedMap instance!" unless @map
89
- raise MiyakoError, "Unknown Map Event ID! : #{id}" unless include?(id)
90
- return @id2event[id].new(@map, x, y)
91
- end
92
-
93
- #===すべての登録済みイベントクラスの登録を解除する
94
- def clear
95
- @id2event.keys.each{|k| @id2event[k] = nil }
96
- end
97
-
98
- def dispose
99
- @map = nil
100
- @id2event.clear
101
- @id2event = nil
102
- end
103
- end
104
-
105
- #==マップ上のイベントを管理するモジュール
106
- #実際に使う際にはmix-inして使う
107
- module MapEvent
108
- #===イベントのインスタンスを作成する
109
- #引数として渡せるX,Y座標の値は、表示上ではなく理論上の座標位置
110
- #_map_obj_:: 関連づけられたMap/FixedMapクラスのインスタンス
111
- #_x_:: マップ上のX座標の値。デフォルトは0
112
- #_y_:: マップ上のY座標の値。デフォルトは0
113
- #返却値:: 生成されたインスタンス
114
- def initialize(map_obj, x = 0, y = 0)
115
- init(map_obj, x, y)
116
- end
117
-
118
- #===イベント生成時のテンプレートメソッド
119
- #イベントクラスからインスタンスが生成された時の初期化処理を実装する
120
- #_map_obj_:: 関連づけられたMap/FixedMapクラスのインスタンス
121
- #_x_:: マップ上のX座標の値
122
- #_y_:: マップ上のY座標の値
123
- def init(map_obj, x, y)
124
- end
125
-
126
- #===インスタンス内の表示やデータを更新するテンプレートメソッド
127
- #マップ画像が更新された時に呼び出される
128
- #_map_obj_:: インスタンスが組み込まれているMap/FixedMapクラスのインスタンス
129
- #_events_:: マップに登録されているイベントインスタンスの配列
130
- #_params_:: 開発者が明示的に用意した引数。内容はハッシュ
131
- def update(map_obj, events, params)
132
- end
133
-
134
- #===イベントを指定の分量で移動させる(テンプレートメソッド)
135
- #_dx_:: 移動量(x座標)。単位はピクセル
136
- #_dy_:: 移動量(y座標)。単位はピクセル
137
- #返却値:: 自分自身を返す
138
- def move(dx,dy)
139
- return self
140
- end
141
-
142
- #===イベントを指定の位置へ移動させる(テンプレートメソッド)
143
- #_x_:: 移動先の位置(x座標)。単位はピクセル
144
- #_y_:: 移動先の位置(y座標)。単位はピクセル
145
- #返却値:: 自分自身を返す
146
- def move_to(x,y)
147
- return self
148
- end
149
-
150
- #===イベント発生可否問い合わせ(テンプレートメソッド)
151
- #イベント発生が可能なときはtrueを返す(その後、startメソッドを呼び出す)処理を実装する
152
- #_param_:: 問い合わせに使用するパラメータ群。デフォルトはnil
153
- #返却値:: イベント発生可能ならばtrue
154
- def met?(*params)
155
- return false
156
- end
157
-
158
- #===画面に画像を描画する(テンプレートメソッド)
159
- #イベントで所持している画像を描画するメソッドを実装する
160
- #(イベント内部で用意している画像の描画用テンプレートメソッド)
161
- def render
162
- end
163
-
164
- #===イベントを発生させる(テンプレートメソッド)
165
- #ここに、イベント発生イベントを実装する。更新はupdateメソッドに実装する
166
- #_param_:: イベント発生に必要なパラメータ群。デフォルトはnil
167
- #返却値:: 自分自身を返す
168
- def start(*params)
169
- return self
170
- end
171
-
172
- #===イベントを停止・終了させる(テンプレートメソッド)
173
- #ここに、イベント停止・終了イベントを実装する。更新はupdateメソッドに実装する
174
- #_param_:: イベント発生に必要なパラメータ群。デフォルトはnil
175
- #返却値:: 自分自身を返す
176
- def stop(*params)
177
- return self
178
- end
179
-
180
- #===イベント発生中問い合わせ(テンプレートメソッド)
181
- #ここに、イベント発生中の問い合わせ処理を実装する。
182
- #_param_:: あとで書く
183
- #返却値:: イベント発生中の時はtrue
184
- def executing?
185
- return false
186
- end
187
-
188
- #===イベント終了後の後処理(テンプレートメソッド)
189
- #ここに、イベント終了後の後処理を実装する。
190
- def final
191
- end
192
-
193
- #===イベントに使用しているインスタンスを解放する(テンプレートメソッド)
194
- #ここに、インスタンス解放処理を実装する。
195
- def dispose
196
- end
197
- end
198
- end
1
+ # -*- encoding: utf-8 -*-
2
+ =begin
3
+ --
4
+ Miyako v2.1
5
+ Copyright (C) 2007-2009 Cyross Makoto
6
+
7
+ This library is free software; you can redistribute it and/or
8
+ modify it under the terms of the GNU Lesser General Public
9
+ License as published by the Free Software Foundation; either
10
+ version 2.1 of the License, or (at your option) any later version.
11
+
12
+ This library is distributed in the hope that it will be useful,
13
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ Lesser General Public License for more details.
16
+
17
+ You should have received a copy of the GNU Lesser General Public
18
+ License along with this library; if not, write to the Free Software
19
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
+ ++
21
+ =end
22
+
23
+ require 'csv'
24
+ require 'forwardable'
25
+
26
+ module Miyako
27
+ #==マップ上のイベント全体を管理するクラス
28
+ #Map/FixedMapクラス内で使用する
29
+ #使い方:
30
+ #
31
+ #(1)インスタンスを生成する
32
+ #
33
+ #em = MapEventManager.new
34
+ #
35
+ #(2)MapEventクラスとIDを登録する
36
+ #
37
+ #(例)MapEventモジュールをmixinしたクラスXを、ID=0のイベントとして登録
38
+ #
39
+ #em.add(0, X)
40
+ #
41
+ #(3)Map/FixedMapクラスインスタンス生成時に引数として渡す
42
+ #
43
+ #@map = Map.new(...,em)
44
+ #
45
+ #(注)登録するIDは、イベントレイヤー上の番号と対応しておくこと
46
+ class MapEventManager
47
+ #===インスタンスを生成する
48
+ #_map_obj_:: Managerが属するMap/FixedMapクラスのインスタンス
49
+ #返却値:: 生成されたインスタンス
50
+ def initialize
51
+ @map = nil
52
+ @id2event = Hash.new
53
+ end
54
+
55
+ def initialize_copy(obj) #:nodoc:
56
+ @map = @map.dup if @map
57
+ @id2event = @id2event.dup
58
+ end
59
+
60
+ def set(map) #:nodoc:
61
+ @map = map
62
+ end
63
+
64
+ #===イベントクラスをマップに追加登録する
65
+ #_id_:: マップ(イベントレイヤ)上の番号。
66
+ #イベントレイヤ上に存在しない番号を渡してもエラーや警告は発しない
67
+ #_event_:: イベントクラス。クラスのインスタンスではないことに注意!
68
+ #返却値:: 自分自身を返す
69
+ def add(id, event)
70
+ @id2event[id] = event
71
+ return self
72
+ end
73
+
74
+ #===イベントが登録されているかを確認する
75
+ #引数で渡した番号に対応するイベントクラスが登録されているかどうかを確認する
76
+ #_id_:: イベントクラスに対応した番号
77
+ #返却値:: イベントクラスが登録されている時はtrueを返す
78
+ def include?(id)
79
+ raise MiyakoError, "This MapEventManager instance is not set Map/FixedMap instance!" unless @map
80
+ return @id2event.has_key?(id)
81
+ end
82
+
83
+ #===イベントのインスタンスを生成する(番号指定)
84
+ #インスタンス生成と同時に、マップ上の座標を渡して初期位置を設定する
85
+ #登録していないIDを指定するとエラーになる
86
+ #
87
+ #設置は、マップ上の座標に設置する。表示上の座標ではない事に注意。
88
+ #_id_:: イベントクラスと登録した際の番号
89
+ #_x_:: イベントを設置する位置(X座標)
90
+ #_y_:: イベントを設置する位置(Y座標)
91
+ #返却値:: 生成したインスタンス
92
+ def create(id, x = 0, y = 0)
93
+ raise MiyakoError, "This MapEventManager instance is not set Map/FixedMap instance!" unless @map
94
+ raise MiyakoError, "Unknown Map Event ID! : #{id}" unless include?(id)
95
+ return @id2event[id].new(@map, x, y)
96
+ end
97
+
98
+ #===すべての登録済みイベントクラスの登録を解除する
99
+ def clear
100
+ @id2event.keys.each{|k| @id2event[k] = nil }
101
+ end
102
+
103
+ def dispose
104
+ @map = nil
105
+ @id2event.clear
106
+ @id2event = nil
107
+ end
108
+ end
109
+
110
+ #==マップ上のイベントを管理するモジュール
111
+ #実際に使う際にはmix-inして使う
112
+ module MapEvent
113
+ include SpriteBase
114
+ include Animation
115
+
116
+ #===イベントのインスタンスを作成する
117
+ #引数として渡せるX,Y座標の値は、表示上ではなく理論上の座標位置
118
+ #_map_obj_:: 関連づけられたMap/FixedMapクラスのインスタンス
119
+ #_x_:: マップ上のX座標の値。デフォルトは0
120
+ #_y_:: マップ上のY座標の値。デフォルトは0
121
+ #返却値:: 生成されたインスタンス
122
+ def initialize(map_obj, x = 0, y = 0)
123
+ init(map_obj, x, y)
124
+ end
125
+
126
+ #===イベント生成時のテンプレートメソッド
127
+ #イベントクラスからインスタンスが生成された時の初期化処理を実装する
128
+ #_map_obj_:: 関連づけられたMap/FixedMapクラスのインスタンス
129
+ #_x_:: マップ上のX座標の値
130
+ #_y_:: マップ上のY座標の値
131
+ def init(map_obj, x, y)
132
+ end
133
+
134
+ #===インスタンス内の表示やデータを更新するテンプレートメソッド
135
+ #マップ画像が更新された時に呼び出される
136
+ #_map_obj_:: インスタンスが組み込まれているMap/FixedMapクラスのインスタンス
137
+ #_events_:: マップに登録されているイベントインスタンスの配列
138
+ #_params_:: 開発者が明示的に用意した引数。内容はハッシュ
139
+ def update(map_obj, events, params)
140
+ end
141
+
142
+ #===イベントを指定の分量で移動させる(テンプレートメソッド)
143
+ #_dx_:: 移動量(x座標)。単位はピクセル
144
+ #_dy_:: 移動量(y座標)。単位はピクセル
145
+ #返却値:: 自分自身を返す
146
+ def move!(dx,dy)
147
+ return self
148
+ end
149
+
150
+ #===イベントを指定の位置へ移動させる(テンプレートメソッド)
151
+ #_x_:: 移動先の位置(x座標)。単位はピクセル
152
+ #_y_:: 移動先の位置(y座標)。単位はピクセル
153
+ #返却値:: 自分自身を返す
154
+ def move_to!(x,y)
155
+ return self
156
+ end
157
+
158
+ #===イベントを指定の分量で移動させたときの値を求める(テンプレートメソッド)
159
+ #_dx_:: 移動量(x座標)。単位はピクセル
160
+ #_dy_:: 移動量(y座標)。単位はピクセル
161
+ #返却値:: 移動した位置のインスタンスを返す
162
+ def move(dx,dy)
163
+ return Position.new(0,0)
164
+ end
165
+
166
+ #===イベントを指定の位置へ移動させたときの値を求める(テンプレートメソッド)
167
+ #_x_:: 移動先の位置(x座標)。単位はピクセル
168
+ #_y_:: 移動先の位置(y座標)。単位はピクセル
169
+ #返却値:: 移動した位置のインスタンスを返す
170
+ def move_to(x,y)
171
+ return Position.new(0,0)
172
+ end
173
+
174
+ #===イベント発生可否問い合わせ(テンプレートメソッド)
175
+ #イベント発生が可能なときはtrueを返す(その後、startメソッドを呼び出す)処理を実装する
176
+ #_param_:: 問い合わせに使用するパラメータ群。デフォルトはnil
177
+ #返却値:: イベント発生可能ならばtrue
178
+ def met?(*params)
179
+ return false
180
+ end
181
+
182
+ #===画面に画像を描画する(テンプレートメソッド)
183
+ #イベントで所持している画像を描画するメソッドを実装する
184
+ #(イベント内部で用意している画像の描画用テンプレートメソッド)
185
+ def render
186
+ end
187
+
188
+ #===イベントを発生させる(テンプレートメソッド)
189
+ #ここに、イベント発生イベントを実装する。更新はupdateメソッドに実装する
190
+ #_param_:: イベント発生に必要なパラメータ群。デフォルトはnil
191
+ #返却値:: 自分自身を返す
192
+ def start(*params)
193
+ return self
194
+ end
195
+
196
+ #===イベントを停止・終了させる(テンプレートメソッド)
197
+ #ここに、イベント停止・終了イベントを実装する。更新はupdateメソッドに実装する
198
+ #_param_:: イベント発生に必要なパラメータ群。デフォルトはnil
199
+ #返却値:: 自分自身を返す
200
+ def stop(*params)
201
+ return self
202
+ end
203
+
204
+ #===イベント発生中問い合わせ(テンプレートメソッド)
205
+ #ここに、イベント発生中の問い合わせ処理を実装する。
206
+ #_param_:: あとで書く
207
+ #返却値:: イベント発生中の時はtrue
208
+ def executing?
209
+ return false
210
+ end
211
+
212
+ #===イベント終了後の後処理(テンプレートメソッド)
213
+ #ここに、イベント終了後の後処理を実装する。
214
+ def final
215
+ end
216
+
217
+ #===イベントに使用しているインスタンスを解放する(テンプレートメソッド)
218
+ #ここに、インスタンス解放処理を実装する。
219
+ def dispose
220
+ end
221
+ end
222
+ end