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
data/lib/Miyako/API/viewport.rb
CHANGED
@@ -1,140 +1,190 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
=begin
|
3
|
-
--
|
4
|
-
Miyako v2.
|
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
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
#
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
def
|
124
|
-
|
125
|
-
@
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
#返却値::
|
136
|
-
def
|
137
|
-
|
138
|
-
end
|
139
|
-
|
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
|