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.
- data/README +1092 -929
- data/Rakefile +7 -7
- data/defines.h +144 -144
- data/extern.h +29 -29
- data/install_miyako.rb +87 -87
- data/lib/Miyako/API/audio.rb +572 -198
- data/lib/Miyako/API/basic_data.rb +825 -573
- data/lib/Miyako/API/bitmap.rb +534 -507
- data/lib/Miyako/API/choices.rb +481 -475
- data/lib/Miyako/API/collision.rb +486 -460
- data/lib/Miyako/API/diagram.rb +586 -561
- data/lib/Miyako/API/drawing.rb +151 -151
- data/lib/Miyako/API/exceptions.rb +105 -0
- data/lib/Miyako/API/fixedmap.rb +462 -428
- data/lib/Miyako/API/font.rb +430 -403
- data/lib/Miyako/API/input.rb +456 -447
- data/lib/Miyako/API/layout.rb +636 -433
- data/lib/Miyako/API/map.rb +583 -529
- data/lib/Miyako/API/map_event.rb +222 -198
- data/lib/Miyako/API/modules.rb +357 -109
- data/lib/Miyako/API/movie.rb +166 -154
- data/lib/Miyako/API/parts.rb +276 -189
- data/lib/Miyako/API/plane.rb +205 -166
- data/lib/Miyako/API/screen.rb +341 -325
- data/lib/Miyako/API/shape.rb +443 -443
- data/lib/Miyako/API/sprite.rb +771 -752
- data/lib/Miyako/API/sprite_animation.rb +490 -481
- data/lib/Miyako/API/sprite_list.rb +1135 -0
- data/lib/Miyako/API/spriteunit.rb +168 -147
- data/lib/Miyako/API/story.rb +350 -300
- data/lib/Miyako/API/textbox.rb +770 -725
- data/lib/Miyako/API/utility.rb +419 -388
- data/lib/Miyako/API/viewport.rb +189 -139
- data/lib/Miyako/API/yuki.rb +1226 -996
- data/lib/Miyako/EXT/miyako_cairo.rb +62 -62
- data/lib/Miyako/EXT/raster_scroll.rb +138 -138
- data/lib/Miyako/EXT/slides.rb +157 -157
- data/lib/Miyako/miyako.rb +201 -171
- data/lib/Miyako/miyako_require_only.rb +35 -0
- data/miyako_basicdata.c +590 -590
- data/miyako_bitmap.c +1225 -1225
- data/miyako_collision.c +403 -403
- data/miyako_drawing.c +187 -187
- data/miyako_font.c +334 -334
- data/miyako_hsv.c +830 -830
- data/miyako_input_audio.c +254 -0
- data/miyako_layout.c +191 -191
- data/miyako_no_katana.c +1078 -1074
- data/miyako_sprite2.c +431 -0
- data/miyako_transform.c +438 -438
- data/miyako_utility.c +288 -288
- data/sample/Animation1/m1ku.rb +68 -68
- data/sample/Animation2/lex.rb +96 -96
- data/sample/Diagram_sample/diagram_sample_yuki2.rb +328 -386
- data/sample/Room3/blue.rb +297 -297
- data/sample/Room3/ending.rb +180 -180
- data/sample/Room3/green.rb +220 -220
- data/sample/Room3/main.rb +119 -119
- data/sample/Room3/main_component.rb +59 -59
- data/sample/Room3/red.rb +227 -227
- data/sample/Room3/room3.rb +25 -27
- data/sample/Room3/title.rb +184 -184
- data/sample/ball_action_sample.rb +204 -204
- data/sample/blit_rop.rb +70 -70
- data/sample/cairo_sample.rb +25 -25
- data/sample/circle_collision_test.rb +66 -66
- data/sample/collision_test.rb +33 -33
- data/sample/collision_test2.rb +108 -108
- data/sample/fixed_map_test/fixed_map_sample.rb +140 -140
- data/sample/fixed_map_test/readme.txt +72 -72
- data/sample/map_test/chara.rb +58 -58
- data/sample/map_test/main_parts.rb +69 -69
- data/sample/map_test/main_scene.rb +153 -153
- data/sample/map_test/map_manager.rb +75 -75
- data/sample/map_test/map_test.rb +23 -23
- data/sample/map_test/oasis.rb +71 -71
- data/sample/map_test/readme.txt +89 -89
- data/sample/map_test/route.rb +157 -157
- data/sample/map_test/town.rb +74 -74
- data/sample/polygon_test.rb +35 -35
- data/sample/rasterscroll.rb +24 -24
- data/sample/takahashi.rb +42 -42
- data/sample/textbox_sample.rb +189 -189
- data/sample/transform.rb +54 -54
- data/sample/utility_test.rb +73 -73
- data/sample/utility_test2.rb +61 -61
- data/sample/utility_test3.rb +64 -64
- data/sample/utility_test4.rb +73 -73
- data/uninstall_miyako.rb +19 -19
- data/win/miyako_no_katana.so +0 -0
- metadata +7 -2
@@ -1,62 +1,62 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
# Miyako Extension Cairo-Miyako interface
|
3
|
-
=begin
|
4
|
-
Miyako Extention Library v2.
|
5
|
-
Copyright (C) 2007-
|
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.
|
5
|
-
Copyright (C) 2007-
|
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
|