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,154 +1,166 @@
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
- module Miyako
24
- #==動画管理クラス
25
- #動画ファイル(MPEGファイル限定)をロード・再生するクラス
26
- class Movie
27
- include SpriteBase
28
- include Layout
29
- extend Forwardable
30
-
31
- @@movie_list = []
32
-
33
- attr_accessor :visible #レンダリングの可否(true->描画 false->非描画)
34
-
35
- #===動画のインスタンスを作成する
36
- #(但し、現在の所、loopパラメータは利用できない)
37
- #_fname_:: 動画ファイル名
38
- #_loops_:: ループ再生の可否。ループ再生させるときは true を渡す
39
- #返却値:: 生成したインスタンス
40
- def initialize(fname, loops = true)
41
- init_layout
42
-
43
- @x = 0
44
- @y = 0
45
-
46
- @movie = SDL::MPEG.load(fname)
47
- @size = Size.new(@movie.info.width, @movie.info.height)
48
- set_layout_size(*(@size.to_a))
49
-
50
- @visible = true
51
- @sprite = Sprite.new({:size=>@size , :type=>:movie})
52
- @sprite.snap(self)
53
-
54
- @movie.enable_audio(true) unless $not_use_audio
55
- @movie.enable_video(true)
56
- @movie.set_loop(loops)
57
-
58
- @movie.set_display(@sprite.bitmap)
59
- @movie.scale(1.0)
60
- @@movie_list.push(self)
61
- end
62
-
63
- def update_layout_position #:nodoc:
64
- @x = @layout.pos[0]
65
- @y = @layout.pos[1]
66
- @sprite.move_to(*@layout.pos)
67
- end
68
-
69
- #===動画再生時の音量を指定する
70
- #_v_:: 指定する音量。(0~100までの整数)
71
- def set_volume(v)
72
- return if v < 0 || v > 100 || $not_use_audio
73
- @movie.set_volume(v)
74
- end
75
-
76
- #===動画再生中かを返す
77
- #返却値:: 再生中のときは true を返す
78
- def playing?
79
- return @movie.status == SDL::MPEG::PLAYING
80
- end
81
-
82
- #===動画データを解放する
83
- def dispose
84
- @movie.stop if playing?
85
- @sprite.dispose
86
- layout_dispose
87
- @@movie_list.delete(self)
88
- @movie = nil
89
- end
90
-
91
- #===再生領域の範囲を設定する
92
- #元動画のうち、表示させたい箇所を Rect クラスのインスタンスか4要素の配列で指定する
93
- #_rect_:: 再生領域。
94
- def region(rect)
95
- @movie.set_display_region(*(rect.to_a))
96
- end
97
-
98
- #===動画の再生を一時停止する
99
- #再生を裁可するには、 Miyako::Movie#rewind メソッドを呼び出す必要がある
100
- #_pause_by_input_:: ダミー
101
- def pause(pause_by_input)
102
- @movie.pause
103
- end
104
-
105
- #===動画を再生させる
106
- #動画の先頭から再生する。ブロックを渡したときは、ブロックを評価している間動画を再生する
107
- #_vol_:: 動画再生時の音量。0~100の整数
108
- def start(vol = nil)
109
- set_volume(vol) if vol
110
- @movie.play
111
- if block_given?
112
- yield self
113
- @movie.stop
114
- end
115
- end
116
-
117
- #===動画再生を停止する
118
- def stop
119
- @movie.stop
120
- end
121
-
122
- #===再生中の動画の再生位置を返す
123
- #位置は秒単位で返す
124
- #返却値:: 再生位置
125
- def current
126
- return @movie.info.current_time
127
- end
128
-
129
- #===動画の長さを返す
130
- #長さは、秒単位で返す。
131
- #返却値:: 動画の長さ
132
- def length
133
- return @movie.info.total_time
134
- end
135
-
136
- #===画面に描画を指示する
137
- #現在表示できる選択肢を、現在の状態で描画するよう指示する
138
- #visibleメソッドの値がfalseのときは描画されない。
139
- #返却値:: 自分自身を返す
140
- def render
141
- return slef nless @visible
142
- @sprite.render
143
- return self
144
- end
145
-
146
- #===一時停止中の動画の再生を再開する
147
- #Miyako::Movie#pause メソッドを実行した後に呼び出す
148
- def_delegators(:@movie, :rewind)
149
- #===指定時間ぶん、スキップ再生を行う
150
- #size:: スキップ長(秒単位)
151
- def_delegators(:@movie, :skip)
152
- def_delegators(:@sprite, :rect, :broad_rect, :ox, :oy)
153
- end
154
- 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
+ module Miyako
24
+ #==動画管理クラス
25
+ #動画ファイル(MPEGファイル限定)をロード・再生するクラス
26
+ class Movie
27
+ include SpriteBase
28
+ include Animation
29
+ include Layout
30
+ extend Forwardable
31
+
32
+ @@movie_list = []
33
+
34
+ attr_accessor :visible #レンダリングの可否(true->描画 false->非描画)
35
+
36
+ #===動画のインスタンスを作成する
37
+ #(但し、現在の所、loopパラメータは利用できない)
38
+ #_fname_:: 動画ファイル名
39
+ #_loops_:: ループ再生の可否。ループ再生させるときは true を渡す
40
+ #返却値:: 生成したインスタンス
41
+ def initialize(fname, loops = true)
42
+ init_layout
43
+
44
+ @x = 0
45
+ @y = 0
46
+
47
+ raise MiyakoIOError.no_file(fname) unless File.exist?(fname)
48
+ @movie = SDL::MPEG.load(fname)
49
+ @size = Size.new(@movie.info.width, @movie.info.height)
50
+ set_layout_size(*(@size.to_a))
51
+
52
+ @visible = true
53
+ @sprite = Sprite.new({:size=>@size , :type=>:movie})
54
+ @sprite.snap(self)
55
+
56
+ @movie.enable_audio(true) unless $not_use_audio
57
+ @movie.enable_video(true)
58
+ @movie.set_loop(loops)
59
+
60
+ @movie.set_display(@sprite.bitmap)
61
+ @movie.scale(1.0)
62
+ @@movie_list.push(self)
63
+ end
64
+
65
+ def update_layout_position #:nodoc:
66
+ @x = @layout.pos[0]
67
+ @y = @layout.pos[1]
68
+ @sprite.move_to!(*@layout.pos)
69
+ end
70
+
71
+ def initialize_copy(obj) #:nodoc:
72
+ @sprite = @sprite.dup
73
+ @size = @size.dup
74
+ copy_layout
75
+ end
76
+
77
+ #===動画再生時の音量を指定する
78
+ #_v_:: 指定する音量。(0~100までの整数)
79
+ def set_volume(v)
80
+ return $not_use_audio
81
+ raise MiyakoValueError.over_range(v, 0, 100) unless (0..100).cover?(v)
82
+ @movie.set_volume(v)
83
+ end
84
+
85
+ #===動画再生中かを返す
86
+ #返却値:: 再生中のときは true を返す
87
+ def playing?
88
+ return @movie.status == SDL::MPEG::PLAYING
89
+ end
90
+
91
+ #===動画データを解放する
92
+ def dispose
93
+ @movie.stop if playing?
94
+ @sprite.dispose
95
+ layout_dispose
96
+ @@movie_list.delete(self)
97
+ @movie = nil
98
+ end
99
+
100
+ #===再生領域の範囲を設定する
101
+ #元動画のうち、表示させたい箇所を Rect クラスのインスタンスか4要素の配列で指定する
102
+ #_rect_:: 再生領域。
103
+ def region(rect)
104
+ @movie.set_display_region(*(rect.to_a))
105
+ end
106
+
107
+ #===動画の再生を一時停止する
108
+ #再生を裁可するには、 Miyako::Movie#rewind メソッドを呼び出す必要がある
109
+ #_pause_by_input_:: ダミー
110
+ def pause(pause_by_input)
111
+ @movie.pause
112
+ end
113
+
114
+ #===動画を再生させる
115
+ #動画の先頭から再生する。ブロックを渡したときは、ブロックを評価している間動画を再生する
116
+ #_vol_:: 動画再生時の音量。0~100の整数
117
+ def start(vol = nil)
118
+ if vol
119
+ raise MiyakoValueError.over_range(vol, 0, 100) unless (0..100).cover?(vol)
120
+ set_volume(vol) if vol
121
+ end
122
+ @movie.play
123
+ if block_given?
124
+ yield self
125
+ @movie.stop
126
+ end
127
+ end
128
+
129
+ #===動画再生を停止する
130
+ def stop
131
+ @movie.stop
132
+ end
133
+
134
+ #===再生中の動画の再生位置を返す
135
+ #位置は秒単位で返す
136
+ #返却値:: 再生位置
137
+ def current
138
+ return @movie.info.current_time
139
+ end
140
+
141
+ #===動画の長さを返す
142
+ #長さは、秒単位で返す。
143
+ #返却値:: 動画の長さ
144
+ def length
145
+ return @movie.info.total_time
146
+ end
147
+
148
+ #===画面に描画を指示する
149
+ #現在表示できる選択肢を、現在の状態で描画するよう指示する
150
+ #visibleメソッドの値がfalseのときは描画されない。
151
+ #返却値:: 自分自身を返す
152
+ def render
153
+ return slef nless @visible
154
+ @sprite.render
155
+ return self
156
+ end
157
+
158
+ #===一時停止中の動画の再生を再開する
159
+ #Miyako::Movie#pause メソッドを実行した後に呼び出す
160
+ def_delegators(:@movie, :rewind)
161
+ #===指定時間ぶん、スキップ再生を行う
162
+ #size:: スキップ長(秒単位)
163
+ def_delegators(:@movie, :skip)
164
+ def_delegators(:@sprite, :rect, :broad_rect, :ox, :oy)
165
+ end
166
+ end