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,140 +1,190 @@
1
- # -*- encoding: utf-8 -*-
2
- =begin
3
- --
4
- Miyako v2.0
5
- Copyright (C) 2007-2008 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
- module Miyako
24
- #==ビューポートクラス
25
- # 描画時の表示範囲を変更する
26
- # 画面全体を基準(640x480の画面のときは(0,0)-(639,479)の範囲)として、範囲を設定する
27
- # 範囲の設定はいつでも行えるが、描画にはrenderメソッドを呼び出した時の値が反映される
28
- class Viewport
29
- attr_accessor :visible #レンダリングの可否(true->描画 false->非描画)
30
-
31
- #===ビューポートのインスタンスを生成する
32
- #_x_:: ビューポートの左上位置(x座標)
33
- #_y_:: ビューポートの左上位置(y座標)
34
- #_w_:: ビューポートの幅(共に1以上、0以下のときはエラーが出る)
35
- #_h_:: ビューポートの高さ(共に1以上、0以下のときはエラーが出る)
36
- def initialize(x, y, w, h)
37
- raise MiyakoError, "Illegal size! w:#{w} h:#{h}" if (w <= 0 || h <= 0)
38
- @rect = Rect.new(x, y, w, h)
39
- @sq = Rect.new(x, y, x+w-1, y+h-1)
40
- @visible = true
41
- end
42
-
43
- #===ビューポートの内容を画面に反映する
44
- # ブロックが渡ってきたときは、範囲を変更して指定することが出来る(この変更は、本メソッドを呼ぶ時だけ有効)
45
- # ブロックの引数は、|Rect構造体|が渡される。
46
- #_block_:: 呼び出し時にブロック付き呼び出しが行われたときのブロック本体。
47
- #呼び先に渡すことが出来る。ブロックがなければnilが入る
48
- def render(&block)
49
- return unless @visible
50
- if block_given?
51
- rect = @rect.dup
52
- yield rect
53
- Screen.bitmap.set_clip_rect(*rect)
54
- else
55
- Screen.bitmap.set_clip_rect(*@rect)
56
- end
57
- end
58
-
59
- #===ビューポートの左上位置を変更する
60
- # 移動量を指定して、位置を変更する
61
- # ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
62
- #_dx_:: 移動量(x方向)
63
- #_dy_:: 移動量(y方向)
64
- #返却値:: 自分自身を返す
65
- def move(dx,dy)
66
- orect = rect.to_a[0..1]
67
- osq = sq.to_a[0..1]
68
- @rect.move(dx,dy)
69
- @sq.move(dx, dy)
70
- if block_given?
71
- unless yield(self)
72
- @rect.move_to(*orect)
73
- @sq.move_to(*osq)
74
- end
75
- end
76
- return self
77
- end
78
-
79
- #===ビューポートの左上位置を変更する
80
- # 移動先を指定して、位置を変更する
81
- # ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
82
- #_x_:: 移動先位置(x方向)
83
- #_y_:: 移動先位置(y方向)
84
- #返却値:: 自分自身を返す
85
- def move_to(x,y)
86
- orect = rect.to_a[0..1]
87
- osq = sq.to_a[0..1]
88
- @rect.move_to(x,y)
89
- @sq.move_to(x, y)
90
- if block_given?
91
- unless yield(self)
92
- @rect.move_to(*orect)
93
- @sq.move_to(*osq)
94
- end
95
- end
96
- end
97
-
98
- #===ビューポートの大きさを変更する
99
- # 変化量を指定して変更する
100
- #_dw_:: 幅
101
- #_dh_:: 高さ
102
- #返却値:: 自分自身を返す
103
- def resize(dw,dh)
104
- raise MiyakoError, "Illegal size! w:#{w} h:#{h}" if ((@rect.w + dw) <= 0 || (@rect.h + dh) <= 0)
105
- @rect.resize(dw, dh)
106
- @sq.resize(dw, dh)
107
- return self
108
- end
109
-
110
- #===ビューポートの大きさを変更する
111
- # 幅と高さを指定して変更する
112
- #_w_::
113
- #_h_:: 高さ
114
- #返却値:: 自分自身を返す
115
- def resize_to(w,h)
116
- raise MiyakoError, "Illegal size! w:#{w} h:#{h}" if (w <= 0 || h <= 0)
117
- @rect.resize_to(w,h)
118
- @sq.resize_to(w, h)
119
- return self
120
- end
121
-
122
- #===インスタンスを解放する
123
- def dispose
124
- @rect = nil
125
- @sq = nil
126
- end
127
-
128
- #===ビューポートのインスタンスを取得する
129
- #返却値:: ビューポートの矩形(Rect構造体インスタンス)の複製
130
- def viewport
131
- return @rect.dup
132
- end
133
-
134
- #===ビューポートのインスタンスを「左、右、上、下」の形式で取得する
135
- #返却値:: ビューポートの矩形(Square構造体インスタンス)の複製
136
- def square
137
- return @sq.dup
138
- end
139
- end
1
+ # -*- encoding: utf-8 -*-
2
+ =begin
3
+ --
4
+ Miyako v2.1
5
+ Copyright (C) 2007-2008 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
+ module Miyako
24
+ #==ビューポートクラス
25
+ # 描画時の表示範囲を変更する
26
+ # 画面全体を基準(640x480の画面のときは(0,0)-(639,479)の範囲)として、範囲を設定する
27
+ # 範囲の設定はいつでも行えるが、描画にはrenderメソッドを呼び出した時の値が反映される
28
+ class Viewport
29
+ include SpriteBase
30
+ include Animation
31
+
32
+ attr_accessor :visible #レンダリングの可否(true->描画 false->非描画)
33
+
34
+ #===ビューポートのインスタンスを生成する
35
+ #_x_:: ビューポートの左上位置(x座標)
36
+ #_y_:: ビューポートの左上位置(y座標)
37
+ #_w_:: ビューポートの幅(共に1以上、0以下のときはエラーが出る)
38
+ #_h_:: ビューポートの高さ(共に1以上、0以下のときはエラーが出る)
39
+ def initialize(x, y, w, h)
40
+ raise MiyakoValueError, "Illegal size! w:#{w} h:#{h}" if (w <= 0 || h <= 0)
41
+ @rect = Rect.new(x, y, w, h)
42
+ @sq = Rect.new(x, y, x+w-1, y+h-1)
43
+ @visible = true
44
+ end
45
+
46
+ def initialize_copy(obj) #:nodoc:
47
+ @rect = @rect.dup
48
+ @sq = @sq.dup
49
+ end
50
+
51
+ #===ビューポートの内容を画面に反映する
52
+ # ブロックが渡ってきたときは、範囲を変更して指定することが出来る(この変更は、本メソッドを呼ぶ時だけ有効)
53
+ # ブロックの引数は、|Rect構造体|が渡される。
54
+ #_block_:: 呼び出し時にブロック付き呼び出しが行われたときのブロック本体。
55
+ #呼び先に渡すことが出来る。ブロックがなければnilが入る
56
+ def render(&block)
57
+ return unless @visible
58
+ if block_given?
59
+ rect = @rect.dup
60
+ yield rect
61
+ Screen.bitmap.set_clip_rect(*rect)
62
+ else
63
+ Screen.bitmap.set_clip_rect(*@rect)
64
+ end
65
+ end
66
+
67
+ #===ビューポートの左上位置を変更する
68
+ # 移動量を指定して、位置を変更する
69
+ # ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
70
+ #_dx_:: 移動量(x方向)
71
+ #_dy_:: 移動量(y方向)
72
+ #返却値:: 自分自身を返す
73
+ def move!(dx,dy)
74
+ orect = rect.to_a[0..1]
75
+ osq = sq.to_a[0..1]
76
+ @rect.move!(dx,dy)
77
+ @sq.move!(dx, dy)
78
+ if block_given?
79
+ unless yield(self)
80
+ @rect.move_to!(*orect)
81
+ @sq.move_to!(*osq)
82
+ end
83
+ end
84
+ return self
85
+ end
86
+
87
+ #===ビューポートの左上位置を変更する
88
+ # 移動先を指定して、位置を変更する
89
+ # ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
90
+ #_x_:: 移動先位置(x方向)
91
+ #_y_:: 移動先位置(y方向)
92
+ #返却値:: 自分自身を返す
93
+ def move_to!(x,y)
94
+ orect = rect.to_a[0..1]
95
+ osq = sq.to_a[0..1]
96
+ @rect.move_to!(x,y)
97
+ @sq.move_to!(x, y)
98
+ if block_given?
99
+ unless yield(self)
100
+ @rect.move_to!(*orect)
101
+ @sq.move_to!(*osq)
102
+ end
103
+ end
104
+ end
105
+
106
+ #===ビューポートの大きさを変更する
107
+ # 変化量を指定して変更する
108
+ #_dw_:: 幅
109
+ #_dh_:: 高さ
110
+ #返却値:: 自分自身を返す
111
+ def resize!(dw,dh)
112
+ raise MiyakoValueError, "Illegal size! w:#{w} h:#{h}" if ((@rect.w + dw) <= 0 || (@rect.h + dh) <= 0)
113
+ @rect.resize!(dw, dh)
114
+ @sq.resize!(dw, dh)
115
+ return self
116
+ end
117
+
118
+ #===ビューポートの大きさを変更する
119
+ # 幅と高さを指定して変更する
120
+ #_w_:: 幅
121
+ #_h_:: 高さ
122
+ #返却値:: 自分自身を返す
123
+ def resize_to!(w,h)
124
+ raise MiyakoValueError, "Illegal size! w:#{w} h:#{h}" if (w <= 0 || h <= 0)
125
+ @rect.resize_to!(w,h)
126
+ @sq.resize_to!(w, h)
127
+ return self
128
+ end
129
+
130
+ #===ビューポートの左上位置を変更したときの位置を求める
131
+ #移動量を指定して、位置を変更する
132
+ #ただし、自分自身の位置は変わらない
133
+ #_dx_:: 移動量(x方向)
134
+ #_dy_:: 移動量(y方向)
135
+ #返却値:: 更新したインスタンス(Rect構造体)を返す
136
+ def move(dx,dy)
137
+ @rect.dup.move!(dx,dy)
138
+ end
139
+
140
+ #===ビューポートの左上位置を変更したときの位置を求める
141
+ #移動先を指定して、位置を変更する
142
+ #ただし、自分自身の位置は変わらない
143
+ #_x_:: 移動先位置(x方向)
144
+ #_y_:: 移動先位置(y方向)
145
+ #返却値:: 更新したインスタンス(Rect構造体)を返す
146
+ def move_to(x,y)
147
+ @rect.dup.move_to!(x,y)
148
+ end
149
+
150
+ #===ビューポートの大きさを変更したときの値を求める
151
+ #変化量を指定して変更する
152
+ #ただし、自分自身の位置は変わらない
153
+ #_dw_:: 幅
154
+ #_dh_:: 高さ
155
+ #返却値:: 更新したインスタンス(Rect構造体)を返す
156
+ def resize(dw,dh)
157
+ raise MiyakoValueError, "Illegal size! w:#{w} h:#{h}" if ((@rect.w + dw) <= 0 || (@rect.h + dh) <= 0)
158
+ @rect.dup.resize!(dw,dh)
159
+ end
160
+
161
+ #===ビューポートの大きさを変更したときの値を求める
162
+ #幅と高さを指定して変更する
163
+ #ただし、自分自身の位置は変わらない
164
+ #_w_:: 幅
165
+ #_h_:: 高さ
166
+ #返却値:: 更新したインスタンス(Rect構造体)を返す
167
+ def resize_to(w,h)
168
+ raise MiyakoValueError, "Illegal size! w:#{w} h:#{h}" if (w <= 0 || h <= 0)
169
+ @rect.dup.resize_to!(w,h)
170
+ end
171
+
172
+ #===インスタンスを解放する
173
+ def dispose
174
+ @rect = nil
175
+ @sq = nil
176
+ end
177
+
178
+ #===ビューポートのインスタンスを複製する
179
+ #返却値:: 自分自身の複製
180
+ def viewport
181
+ return self.dup
182
+ end
183
+
184
+ #===ビューポートのインスタンスを「左、右、上、下」の形式で取得する
185
+ #返却値:: ビューポートの矩形(Square構造体インスタンス)の複製
186
+ def square
187
+ return @sq.dup
188
+ end
189
+ end
140
190
  end