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,62 +1,62 @@
1
- # -*- encoding: utf-8 -*-
2
- # Miyako Extension Cairo-Miyako interface
3
- =begin
4
- Miyako Extention Library 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
- =end
21
-
22
- begin
23
- loaded = false
24
- require 'cairo'
25
- rescue LoadError
26
- begin
27
- require 'rubygems'
28
- require 'cairo'
29
- loaded = true
30
- rescue LoadError
31
- raise Miyako::MiyakoError, "Sorry, Cairo-Miyako Interface has rcairo." unless loaded
32
- end
33
- end
34
-
35
- module Miyako
36
- #==MiyakoのSpriteクラスのインスタンスとCairoのImageSurfaceクラスのインスタンスとの相互変換モジュール
37
- #要rcairo1.8以降
38
- module MiyakoCairo
39
- #===SpriteインスタンスをCairoのImageSurfaceに変換
40
- #変換したCairo::ImageSurfaceインスタンスは、32ビット(Cairo::Format::ARGB32)の画像を持つ
41
- #_sprite_:: 変換元Spriteインスタンス
42
- #返却値:: 変換したCairo::ImageSurfaceインスタンス
43
- def MiyakoCairo.to_cairo_surface(sprite)
44
- return Cairo::ImageSurface.new(sprite.bitmap.pixels, Cairo::Format::ARGB32, sprite.w, sprite.h, sprite.w * 4)
45
- end
46
-
47
- #===CairoのImageSurfaceをSpriteインスタンスに変換
48
- #変換したSpriteインスタンスは、:acタイプ(但し元画像がCairo::Format::RGB24の時は:asタイプ)の画像を持つ
49
- #_surface_:: 変換元Cairo::ImageSurfaceインスタンス
50
- #返却値:: 変換したSpriteインスタンス
51
- def MiyakoCairo.to_sprite(surface)
52
- # エンディアン判別
53
- if [1].pack("V*") == [1].pack("L*") # リトルエンディアン?
54
- bitmap = SDL::Surface.new_from(surface.data, surface.width, surface.height, 32, surface.stride, 0xff0000, 0xff00, 0xff, 0xff000000)
55
- else # ビッグエンディアン
56
- bitmap = SDL::Surface.new_from(surface.data, surface.width, surface.height, 32, surface.stride, 0xff00, 0xff0000, 0xff000000, 0xff)
57
- end
58
- return Sprite.new(:bitmap => bitmap, :type => :as) if surface.format == Cairo::Format::RGB24
59
- return Sprite.new(:bitmap => bitmap, :type => :ac)
60
- end
61
- end
62
- end
1
+ # -*- encoding: utf-8 -*-
2
+ # Miyako Extension Cairo-Miyako interface
3
+ =begin
4
+ Miyako Extention Library 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
+ =end
21
+
22
+ begin
23
+ loaded = false
24
+ require 'cairo'
25
+ rescue LoadError
26
+ begin
27
+ require 'rubygems'
28
+ require 'cairo'
29
+ loaded = true
30
+ rescue LoadError
31
+ raise Miyako::MiyakoError, "Sorry, Cairo-Miyako Interface has rcairo." unless loaded
32
+ end
33
+ end
34
+
35
+ module Miyako
36
+ #==MiyakoのSpriteクラスのインスタンスとCairoのImageSurfaceクラスのインスタンスとの相互変換モジュール
37
+ #要rcairo1.8以降
38
+ module MiyakoCairo
39
+ #===SpriteインスタンスをCairoのImageSurfaceに変換
40
+ #変換したCairo::ImageSurfaceインスタンスは、32ビット(Cairo::Format::ARGB32)の画像を持つ
41
+ #_sprite_:: 変換元Spriteインスタンス
42
+ #返却値:: 変換したCairo::ImageSurfaceインスタンス
43
+ def MiyakoCairo.to_cairo_surface(sprite)
44
+ return Cairo::ImageSurface.new(sprite.bitmap.pixels, Cairo::Format::ARGB32, sprite.w, sprite.h, sprite.w * 4)
45
+ end
46
+
47
+ #===CairoのImageSurfaceをSpriteインスタンスに変換
48
+ #変換したSpriteインスタンスは、:acタイプ(但し元画像がCairo::Format::RGB24の時は:asタイプ)の画像を持つ
49
+ #_surface_:: 変換元Cairo::ImageSurfaceインスタンス
50
+ #返却値:: 変換したSpriteインスタンス
51
+ def MiyakoCairo.to_sprite(surface)
52
+ # エンディアン判別
53
+ if [1].pack("V*") == [1].pack("L*") # リトルエンディアン?
54
+ bitmap = SDL::Surface.new_from(surface.data, surface.width, surface.height, 32, surface.stride, 0xff0000, 0xff00, 0xff, 0xff000000)
55
+ else # ビッグエンディアン
56
+ bitmap = SDL::Surface.new_from(surface.data, surface.width, surface.height, 32, surface.stride, 0xff00, 0xff0000, 0xff000000, 0xff)
57
+ end
58
+ return Sprite.new(:bitmap => bitmap, :type => :as) if surface.format == Cairo::Format::RGB24
59
+ return Sprite.new(:bitmap => bitmap, :type => :ac)
60
+ end
61
+ end
62
+ end
@@ -1,138 +1,138 @@
1
- # -*- encoding: utf-8 -*-
2
- # Miyako Extension Raster Scroll
3
- =begin
4
- Miyako Extention Library 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
- =end
21
-
22
- module Miyako
23
- #==ラスタスクロール実行クラス
24
- #波の様に揺れる(疑似)ラスタスクロールを行うクラス
25
- #波はサイン波で構成される
26
- class RasterScroll
27
- #===インスタンスを作成する
28
- #ラスタスクロール対象のスプライトを登録する
29
- #_sspr_:: ラスタスクロール対象スプライト
30
- #返却値:: 作成したインスタンス
31
- def initialize(sspr)
32
- @src = sspr
33
- @lines = 0
34
- @h = @src.h
35
- @size = 0
36
- @sangle = 0
37
- @dangle = 0
38
- @fade_out = false
39
- @fo_size = 0
40
- @effecting = false
41
- end
42
-
43
- #===ラスタスクロールを開始する
44
- #ラスタスクロール実行用に設定する引数は以下の通り
45
- #:lines -> ライン数(:lines=>3を指定すると、3ラインずつラスタスクロールを行う)。デフォルトは1(ライン)
46
- #:size -> 最大振幅数(:size=>20を指定すると、最大20ピクセルの高さの波となる)。デフォルトは4(ピクセル)
47
- #:start_angle -> 開始角度(一番上のラインでの振幅角度(ラジアンではなく角度なのに注意!))。デフォルトは0(度)
48
- #:distance -> 角度の変化量(ラインごとの角度の変化量。:distance=>1のときは、1度ずつ変化させる)。デフォルトは1(度)
49
- #:wait -> 変化させる間隔(WaitCounterクラスのインスタンス)。デフォルトは0.1秒間隔
50
- #_params_:: ラスタスクロール情報引数
51
- #返却値:: 自分自身を返す
52
- def start(params)
53
- @lines = params[:lines] || 1
54
- @size = params[:size] || 4
55
- @sangle = params[:start_angle] || 0
56
- @dangle = params[:distance] || 1
57
- @wait = params[:wait] || WaitCounter.new(0.1)
58
- @h = @h / @lines
59
- @fade_out = false
60
- @fo_size = 0
61
- @effecting = true
62
- @wait.start
63
- return self
64
- end
65
-
66
- #===ラスタスクロール処理を更新する
67
- #返却値:: 自分自身を返す
68
- def update
69
- return self unless @effecting
70
- if @wait.finish?
71
- @sangle = (@sangle + @dangle) % 360
72
- @wait.start
73
- if @fade_out
74
- return self unless @fo_wait.finish?
75
- @size = @size - @fo_size
76
- @fo_wait.start
77
- if @size <= 0
78
- @effecting = false
79
- @fade_out = false
80
- end
81
- end
82
- end
83
- return self
84
- end
85
-
86
- #===ラスタスクロールの実行状態を問い合わせる
87
- #返却値:: ラスタスクロール中の時はtrueを返す
88
- def effecting?
89
- return @effecting
90
- end
91
-
92
- #===ラスタスクロールの実行状態を問い合わせる
93
- #返却値:: ラスタスクロール中の時はtrueを返す
94
- def fade_out?
95
- return @fade_out
96
- end
97
-
98
- #===ラスタスクロールを停止する
99
- def stop
100
- @wait.stop
101
- @fo_size.stop if @fo_size
102
- @effecting = false
103
- @fade_out = false
104
- end
105
-
106
- #===ラスタスクロールを画面に描画する
107
- def render
108
- angle = @sangle
109
- @h.times{|y|
110
- rsx = @size * Math.sin(angle)
111
- @src.render{|src, dst| src.x += rsx; src.y += y * @lines; src.oy += y * @lines; src.oh = @lines }
112
- angle = angle + @dangle
113
- }
114
- end
115
-
116
- #===ラスタスクロールを画像に描画する
117
- #_dst_:: 描画先画像
118
- def render_to(dst)
119
- @angle = @sangle
120
- @h.times{|y|
121
- rsx = @size * Math.sin(@angle)
122
- @src.render_to(dst){|src, dst| src.x += rsx; src.y += y * @lines; src.oy += y * @lines; src.oh = @lines }
123
- @angle = @angle + @dangle
124
- }
125
- end
126
-
127
- #===ラスタスクロールをフェードアウトさせる
128
- #引数fwに与えられた間隔で振幅が減っていき(減る量は引数fsで与えられた値)、振幅がゼロになると終了する
129
- #_fs_:: フェードアウトの変化量
130
- #_fw_:: フェードアウトの変化を待つカウント(WaitCounterクラスインスタンス)
131
- def fade_out(fs, fw)
132
- @fo_size = fs
133
- @fo_wait = fw
134
- @fo_wait.start
135
- @fade_out = true
136
- end
137
- end
138
- end
1
+ # -*- encoding: utf-8 -*-
2
+ # Miyako Extension Raster Scroll
3
+ =begin
4
+ Miyako Extention Library 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
+ =end
21
+
22
+ module Miyako
23
+ #==ラスタスクロール実行クラス
24
+ #波の様に揺れる(疑似)ラスタスクロールを行うクラス
25
+ #波はサイン波で構成される
26
+ class RasterScroll
27
+ #===インスタンスを作成する
28
+ #ラスタスクロール対象のスプライトを登録する
29
+ #_sspr_:: ラスタスクロール対象スプライト
30
+ #返却値:: 作成したインスタンス
31
+ def initialize(sspr)
32
+ @src = sspr
33
+ @lines = 0
34
+ @h = @src.h
35
+ @size = 0
36
+ @sangle = 0
37
+ @dangle = 0
38
+ @fade_out = false
39
+ @fo_size = 0
40
+ @effecting = false
41
+ end
42
+
43
+ #===ラスタスクロールを開始する
44
+ #ラスタスクロール実行用に設定する引数は以下の通り
45
+ #:lines -> ライン数(:lines=>3を指定すると、3ラインずつラスタスクロールを行う)。デフォルトは1(ライン)
46
+ #:size -> 最大振幅数(:size=>20を指定すると、最大20ピクセルの高さの波となる)。デフォルトは4(ピクセル)
47
+ #:start_angle -> 開始角度(一番上のラインでの振幅角度(ラジアンではなく角度なのに注意!))。デフォルトは0(度)
48
+ #:distance -> 角度の変化量(ラインごとの角度の変化量。:distance=>1のときは、1度ずつ変化させる)。デフォルトは1(度)
49
+ #:wait -> 変化させる間隔(WaitCounterクラスのインスタンス)。デフォルトは0.1秒間隔
50
+ #_params_:: ラスタスクロール情報引数
51
+ #返却値:: 自分自身を返す
52
+ def start(params)
53
+ @lines = params[:lines] || 1
54
+ @size = params[:size] || 4
55
+ @sangle = params[:start_angle] || 0
56
+ @dangle = params[:distance] || 1
57
+ @wait = params[:wait] || WaitCounter.new(0.1)
58
+ @h = @h / @lines
59
+ @fade_out = false
60
+ @fo_size = 0
61
+ @effecting = true
62
+ @wait.start
63
+ return self
64
+ end
65
+
66
+ #===ラスタスクロール処理を更新する
67
+ #返却値:: 自分自身を返す
68
+ def update
69
+ return self unless @effecting
70
+ if @wait.finish?
71
+ @sangle = (@sangle + @dangle) % 360
72
+ @wait.start
73
+ if @fade_out
74
+ return self unless @fo_wait.finish?
75
+ @size = @size - @fo_size
76
+ @fo_wait.start
77
+ if @size <= 0
78
+ @effecting = false
79
+ @fade_out = false
80
+ end
81
+ end
82
+ end
83
+ return self
84
+ end
85
+
86
+ #===ラスタスクロールの実行状態を問い合わせる
87
+ #返却値:: ラスタスクロール中の時はtrueを返す
88
+ def effecting?
89
+ return @effecting
90
+ end
91
+
92
+ #===ラスタスクロールの実行状態を問い合わせる
93
+ #返却値:: ラスタスクロール中の時はtrueを返す
94
+ def fade_out?
95
+ return @fade_out
96
+ end
97
+
98
+ #===ラスタスクロールを停止する
99
+ def stop
100
+ @wait.stop
101
+ @fo_size.stop if @fo_size
102
+ @effecting = false
103
+ @fade_out = false
104
+ end
105
+
106
+ #===ラスタスクロールを画面に描画する
107
+ def render
108
+ angle = @sangle
109
+ @h.times{|y|
110
+ rsx = @size * Math.sin(angle)
111
+ @src.render{|src, dst| src.x += rsx; src.y += y * @lines; src.oy += y * @lines; src.oh = @lines }
112
+ angle = angle + @dangle
113
+ }
114
+ end
115
+
116
+ #===ラスタスクロールを画像に描画する
117
+ #_dst_:: 描画先画像
118
+ def render_to(dst)
119
+ @angle = @sangle
120
+ @h.times{|y|
121
+ rsx = @size * Math.sin(@angle)
122
+ @src.render_to(dst){|src, dst| src.x += rsx; src.y += y * @lines; src.oy += y * @lines; src.oh = @lines }
123
+ @angle = @angle + @dangle
124
+ }
125
+ end
126
+
127
+ #===ラスタスクロールをフェードアウトさせる
128
+ #引数fwに与えられた間隔で振幅が減っていき(減る量は引数fsで与えられた値)、振幅がゼロになると終了する
129
+ #_fs_:: フェードアウトの変化量
130
+ #_fw_:: フェードアウトの変化を待つカウント(WaitCounterクラスインスタンス)
131
+ def fade_out(fs, fw)
132
+ @fo_size = fs
133
+ @fo_wait = fw
134
+ @fo_wait.start
135
+ @fade_out = true
136
+ end
137
+ end
138
+ end