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/plane.rb
CHANGED
@@ -1,166 +1,205 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
=begin
|
3
|
-
--
|
4
|
-
Miyako v2.
|
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
|
-
class Plane
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
#
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
@sprite =
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
#===プレーン画像左上の
|
59
|
-
#元画像の左上の位置がどこにあるのかを示す
|
60
|
-
#返却値::
|
61
|
-
def
|
62
|
-
return @pos.
|
63
|
-
end
|
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
|
-
return
|
94
|
-
end
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
@sprite.
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
end
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
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
|
+
class Plane
|
26
|
+
include SpriteBase
|
27
|
+
include Animation
|
28
|
+
extend Forwardable
|
29
|
+
|
30
|
+
def resize #:nodoc:
|
31
|
+
@size = Size.new(((Screen.w + @sprite.ow - 1) / @sprite.ow + 2),
|
32
|
+
((Screen.h + @sprite.oh - 1) / @sprite.oh + 2))
|
33
|
+
end
|
34
|
+
|
35
|
+
#===インスタンスの作成
|
36
|
+
#パラメータは、Sprite.newのパラメータと同じ。但し、追加のパラメータがある。
|
37
|
+
#
|
38
|
+
#:sprite => (インスタンス) : 表示対象のスプライト(アニメーション)のインスタンス
|
39
|
+
#
|
40
|
+
#_param_:: プレーンの情報(:sprite(=>Sprite・SpriteAnimationクラスのインスタンス))
|
41
|
+
#返却値:: 生成したインスタンス
|
42
|
+
def initialize(param)
|
43
|
+
if param.has_key?(:sprite)
|
44
|
+
@sprite = param[:sprite]
|
45
|
+
else
|
46
|
+
@sprite = Sprite.new(param)
|
47
|
+
end
|
48
|
+
resize
|
49
|
+
@pos = Point.new(0, 0)
|
50
|
+
@visible = true
|
51
|
+
end
|
52
|
+
|
53
|
+
def initialize_copy(obj) #:nodoc:
|
54
|
+
@sprite = @sprite.dup
|
55
|
+
@pos = @pos.dup
|
56
|
+
end
|
57
|
+
|
58
|
+
#===プレーン画像左上の x 座標の値を取得する
|
59
|
+
#元画像の左上の位置がどこにあるのかを示す
|
60
|
+
#返却値:: x 座標の値
|
61
|
+
def x
|
62
|
+
return @pos.x
|
63
|
+
end
|
64
|
+
|
65
|
+
#===プレーン画像左上の y 座標の値を取得する
|
66
|
+
#元画像の左上の位置がどこにあるのかを示す
|
67
|
+
#返却値:: y 座標の値
|
68
|
+
def y
|
69
|
+
return @pos.y
|
70
|
+
end
|
71
|
+
|
72
|
+
#===プレーンの表示位置を移動させる
|
73
|
+
#画像スクロールと同じ効果を得る
|
74
|
+
#_dx_:: 移動量(x 座標)
|
75
|
+
#_dy_:: 移動量(y 座標)
|
76
|
+
#返却値:: 自分自身を返す
|
77
|
+
def move!(dx, dy)
|
78
|
+
@pos.move!(dx, dy)
|
79
|
+
@pos.x %= @sprite.ow if @pos.x >= @sprite.ow || @pos.x <= -@sprite.ow
|
80
|
+
@pos.y %= @sprite.oh if @pos.y >= @sprite.oh || @pos.y <= -@sprite.oh
|
81
|
+
return self
|
82
|
+
end
|
83
|
+
|
84
|
+
#===プレーンの表示位置を移動させる(移動位置指定)
|
85
|
+
#画像スクロールと同じ効果を得る
|
86
|
+
#_x_:: 移動先の位置(x 座標)
|
87
|
+
#_y_:: 移動先の位置(y 座標)
|
88
|
+
#返却値:: 自分自身を返す
|
89
|
+
def move_to!(x, y)
|
90
|
+
@pos.move_to!(x, y)
|
91
|
+
@pos.x %= @screen.ow if @pos.x >= @sprite.ow || @pos.x <= -@sprite.ow
|
92
|
+
@pos.y %= @screen.oh if @pos.y >= @sprite.oh || @pos.y <= -@sprite.oh
|
93
|
+
return self
|
94
|
+
end
|
95
|
+
|
96
|
+
#===プレーンの表示位置を移動させたときの位置を求める
|
97
|
+
#画像スクロールと同じ効果を得る
|
98
|
+
#ただし、自分自身の位置は変わらない
|
99
|
+
#_dx_:: 移動量(x 座標)
|
100
|
+
#_dy_:: 移動量(y 座標)
|
101
|
+
#返却値:: 変更したPosition構造体を返す
|
102
|
+
def move!(dx, dy)
|
103
|
+
@pos.move!(dx, dy)
|
104
|
+
@pos.x %= @sprite.ow if @pos.x >= @sprite.ow || @pos.x <= -@sprite.ow
|
105
|
+
@pos.y %= @sprite.oh if @pos.y >= @sprite.oh || @pos.y <= -@sprite.oh
|
106
|
+
return self
|
107
|
+
end
|
108
|
+
|
109
|
+
#===プレーンの表示位置を移動させたときの位置を求める(移動位置指定)
|
110
|
+
#画像スクロールと同じ効果を得る
|
111
|
+
#ただし、自分自身の位置は変わらない
|
112
|
+
#_x_:: 移動先の位置(x 座標)
|
113
|
+
#_y_:: 移動先の位置(y 座標)
|
114
|
+
#返却値:: 変更したPosition構造体を返す
|
115
|
+
def move_to!(x, y)
|
116
|
+
@pos.move_to!(x, y)
|
117
|
+
@pos.x %= @screen.ow if @pos.x >= @sprite.ow || @pos.x <= -@sprite.ow
|
118
|
+
@pos.y %= @screen.oh if @pos.y >= @sprite.oh || @pos.y <= -@sprite.oh
|
119
|
+
return self
|
120
|
+
end
|
121
|
+
|
122
|
+
#===画像の表示矩形を取得する
|
123
|
+
#Planeの大きさを矩形で取得する。値は、Screen.rectメソッドの値と同じ。
|
124
|
+
#返却値:: 生成された矩形(Rect構造体のインスタンス)
|
125
|
+
def rect
|
126
|
+
return Screen.rect
|
127
|
+
end
|
128
|
+
|
129
|
+
#===現在の画面の最大の大きさを矩形で取得する
|
130
|
+
#但し、Planeの場合は最大の大きさ=画面の大きさなので、rectと同じ値が得られる
|
131
|
+
#返却値:: 生成された矩形(Rect構造体のインスタンス)
|
132
|
+
def broad_rect
|
133
|
+
return self.rect
|
134
|
+
end
|
135
|
+
|
136
|
+
#===プレーンのデータを解放する
|
137
|
+
def dispose
|
138
|
+
@sprite.dispose
|
139
|
+
end
|
140
|
+
|
141
|
+
#===画面に描画を指示する
|
142
|
+
#現在表示できるプレーンを、現在の状態で描画するよう指示する
|
143
|
+
#--
|
144
|
+
#(但し、実際に描画されるのはScreen.renderメソッドが呼び出された時)
|
145
|
+
#++
|
146
|
+
#返却値:: 自分自身を返す
|
147
|
+
def render
|
148
|
+
@size.h.times{|y|
|
149
|
+
@size.w.times{|x|
|
150
|
+
u = @sprite.to_unit
|
151
|
+
u.move_to(x * @sprite.ow + @pos.x, y * @sprite.oh + @pos.y)
|
152
|
+
Screen.render_screen(u) if u.x >= 0 && u.y >= 0 && u.x + u.ow <= Screen.bitmap.w && u.y + u.oh <= Screen.bitmap.h
|
153
|
+
}
|
154
|
+
}
|
155
|
+
return self
|
156
|
+
end
|
157
|
+
|
158
|
+
#===描画の素になるスプライトのアニメーションを更新する
|
159
|
+
#返却値:: 更新した結果、パターンが変わった・アニメーションが終了したときはtrue、それ以外はfalseを返す
|
160
|
+
def update_animation
|
161
|
+
return @sprite.update_animation
|
162
|
+
end
|
163
|
+
|
164
|
+
#===現在表示されているプレーンをSpriteクラスのインスタンスとして取得
|
165
|
+
#引数1個のブロックを渡せば、スプライトに補正をかけることが出来る
|
166
|
+
#返却値:: 取り込んだ画像を含むSpriteクラスのインスタンス
|
167
|
+
def to_sprite
|
168
|
+
sprite = Sprite.new(:size=>self.rect.to_a[2..3], :type=>:ac)
|
169
|
+
Drawing.fill(sprite, [0,0,0])
|
170
|
+
Bitmap.ck_to_ac!(sprite, [0,0,0])
|
171
|
+
self.render_to(sprite)
|
172
|
+
yield sprite if block_given?
|
173
|
+
return sprite
|
174
|
+
end
|
175
|
+
|
176
|
+
#===SpriteUnit構造体を生成する
|
177
|
+
#いったんSpriteインスタンスを作成し、それをもとにSpriteUnit構造体を生成する。
|
178
|
+
#返却値:: 生成したSpriteUnit構造体
|
179
|
+
def to_unit
|
180
|
+
return self.to_sprite.to_unit
|
181
|
+
end
|
182
|
+
|
183
|
+
def Plane::resize #:nodoc:
|
184
|
+
@@planes.each{|p| p.resize }
|
185
|
+
return nil
|
186
|
+
end
|
187
|
+
|
188
|
+
#===プレーンを画面に描画する
|
189
|
+
#転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点にする。
|
190
|
+
#画面の描画範囲は、src側SpriteUnitの(x,y)を起点に、タイリングを行いながら貼り付ける。
|
191
|
+
#visibleメソッドの値がfalseのときは描画されない。
|
192
|
+
def render
|
193
|
+
end
|
194
|
+
|
195
|
+
#===プレーンを画像に描画する
|
196
|
+
#転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点にする。
|
197
|
+
#転送先の描画範囲は、src側SpriteUnitの(x,y)を起点に、タイリングを行いながら貼り付ける。
|
198
|
+
#visibleメソッドの値がfalseのときは描画されない。
|
199
|
+
#_dst_:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
|
200
|
+
def render_to(dst)
|
201
|
+
end
|
202
|
+
|
203
|
+
def_delegators(:sprite)
|
204
|
+
end
|
205
|
+
end
|