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,147 +1,168 @@
|
|
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
|
-
# スプライト関連クラス群
|
24
|
-
module Miyako
|
25
|
-
#==SpriteUnitを生成するための構造体クラス
|
26
|
-
#Structクラスからの継承
|
27
|
-
#--
|
28
|
-
#SpriteUnit = Struct.new(:bitmap, :ox, :oy, :ow, :oh, :x, :y, :cx, :cy)
|
29
|
-
#++
|
30
|
-
class SpriteUnitBase < Struct
|
31
|
-
#===位置を変更する(変化量を指定)
|
32
|
-
#位置を右方向へdxピクセル、下方向へdyピクセル移動する
|
33
|
-
#ブロックを渡すと、ブロック評価中の位置を変更する
|
34
|
-
#_dx_:: 移動量(x方向)。単位はピクセル
|
35
|
-
#_dy_:: 移動量(y方向)。単位はピクセル
|
36
|
-
#返却値:: 自分自身を返す
|
37
|
-
def move(dx, dy)
|
38
|
-
o = [self.x, self.y]
|
39
|
-
self.x+=dx
|
40
|
-
self.y+=dy
|
41
|
-
if block_given?
|
42
|
-
yield
|
43
|
-
self.x, self.y = o
|
44
|
-
end
|
45
|
-
return self
|
46
|
-
end
|
47
|
-
|
48
|
-
#===位置を変更する(位置指定)
|
49
|
-
#左上を(0.0)として、位置を右xピクセル、下yピクセルの位置移動する
|
50
|
-
#ブロックを渡すと、ブロック評価中の位置を変更する
|
51
|
-
#_x_:: 移動先位置(x方向)。単位はピクセル
|
52
|
-
#_y_:: 移動先位置(y方向)。単位はピクセル
|
53
|
-
#返却値:: 自分自身を返す
|
54
|
-
def move_to(x, y)
|
55
|
-
o = [self.x, self.y]
|
56
|
-
self.x=x
|
57
|
-
self.y=y
|
58
|
-
if block_given?
|
59
|
-
yield
|
60
|
-
self.x, self.y = o
|
61
|
-
end
|
62
|
-
return self
|
63
|
-
end
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
end
|
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
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
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
|
+
# スプライト関連クラス群
|
24
|
+
module Miyako
|
25
|
+
#==SpriteUnitを生成するための構造体クラス
|
26
|
+
#Structクラスからの継承
|
27
|
+
#--
|
28
|
+
#SpriteUnit = Struct.new(:bitmap, :ox, :oy, :ow, :oh, :x, :y, :cx, :cy)
|
29
|
+
#++
|
30
|
+
class SpriteUnitBase < Struct
|
31
|
+
#===位置を変更する(変化量を指定)
|
32
|
+
#位置を右方向へdxピクセル、下方向へdyピクセル移動する
|
33
|
+
#ブロックを渡すと、ブロック評価中の位置を変更する
|
34
|
+
#_dx_:: 移動量(x方向)。単位はピクセル
|
35
|
+
#_dy_:: 移動量(y方向)。単位はピクセル
|
36
|
+
#返却値:: 自分自身を返す
|
37
|
+
def move!(dx, dy)
|
38
|
+
o = [self.x, self.y]
|
39
|
+
self.x+=dx
|
40
|
+
self.y+=dy
|
41
|
+
if block_given?
|
42
|
+
yield
|
43
|
+
self.x, self.y = o
|
44
|
+
end
|
45
|
+
return self
|
46
|
+
end
|
47
|
+
|
48
|
+
#===位置を変更する(位置指定)
|
49
|
+
#左上を(0.0)として、位置を右xピクセル、下yピクセルの位置移動する
|
50
|
+
#ブロックを渡すと、ブロック評価中の位置を変更する
|
51
|
+
#_x_:: 移動先位置(x方向)。単位はピクセル
|
52
|
+
#_y_:: 移動先位置(y方向)。単位はピクセル
|
53
|
+
#返却値:: 自分自身を返す
|
54
|
+
def move_to!(x, y)
|
55
|
+
o = [self.x, self.y]
|
56
|
+
self.x=x
|
57
|
+
self.y=y
|
58
|
+
if block_given?
|
59
|
+
yield
|
60
|
+
self.x, self.y = o
|
61
|
+
end
|
62
|
+
return self
|
63
|
+
end
|
64
|
+
|
65
|
+
#===位置を変更したときの値を求める(変化量を指定)
|
66
|
+
#位置を右方向へdxピクセル、下方向へdyピクセル移動する
|
67
|
+
#そのときの値をPosition構造体のインスタンスとして返す
|
68
|
+
#ただし、そのときの値が得られるだけで、自信の値に変更はない
|
69
|
+
#_dx_:: 移動量(x方向)。単位はピクセル
|
70
|
+
#_dy_:: 移動量(y方向)。単位はピクセル
|
71
|
+
#返却値:: 更新した位置を示すPosition構造体のインスタンス
|
72
|
+
def move(dx, dy)
|
73
|
+
Position.new(self.x+dx, self.y+dy)
|
74
|
+
end
|
75
|
+
|
76
|
+
#===位置を変更したときの値を求める(位置指定)
|
77
|
+
#左上を(0.0)として、位置を右xピクセル、下yピクセルの位置移動する
|
78
|
+
#そのときの値をPosition構造体のインスタンスとして返す
|
79
|
+
#ただし、そのときの値が得られるだけで、自信の値に変更はない
|
80
|
+
#_x_:: 移動先位置(x方向)。単位はピクセル
|
81
|
+
#_y_:: 移動先位置(y方向)。単位はピクセル
|
82
|
+
#返却値:: 更新した位置を示すPosition構造体のインスタンス
|
83
|
+
def move_to(x, y)
|
84
|
+
Position.new(x, y)
|
85
|
+
end
|
86
|
+
|
87
|
+
#===自分自身を返す
|
88
|
+
#SpriteUnit対応
|
89
|
+
#ダックタイピング用のメソッド
|
90
|
+
#得られるインスタンスは複写していないので、インスタンスの値を調整するには、dupメソッドで複製する必要がある
|
91
|
+
#返却値:: 自分自身
|
92
|
+
def to_unit
|
93
|
+
return self
|
94
|
+
end
|
95
|
+
|
96
|
+
#===スプライトを生成して返す
|
97
|
+
#ダックタイピング用のメソッド
|
98
|
+
#所持しているSpriteUnitから、Spriteクラスのインスタンスを生成する
|
99
|
+
#但し、bitmapの設定は:type=>:alpha_channelのみ
|
100
|
+
#引数1個のブロックを渡せば、スプライトに補正をかけることが出来る
|
101
|
+
#返却値:: 生成したスプライト
|
102
|
+
def to_sprite
|
103
|
+
sprite = Sprite.new(:unit=>self, :type=>:ac)
|
104
|
+
yield sprite if block_given?
|
105
|
+
return sprite
|
106
|
+
end
|
107
|
+
|
108
|
+
#===画像の表示矩形を取得する
|
109
|
+
#画像が表示されているときの矩形を取得する。矩形は、[x,y,ow,oh]で取得する。
|
110
|
+
#返却値:: 生成された矩形
|
111
|
+
def rect
|
112
|
+
return Rect.new(self.x, self.y, self.ow, self.oh)
|
113
|
+
end
|
114
|
+
|
115
|
+
#===現在の画面の最大の大きさを矩形で取得する
|
116
|
+
#但し、SpriteUnitの場合は最大の大きさ=画像の大きさなので、rectと同じ値が得られる
|
117
|
+
#返却値:: 画像の大きさ(Rect構造体のインスタンス)
|
118
|
+
def broad_rect
|
119
|
+
return self.rect
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
#==スプライト出力情報構造体
|
124
|
+
#基本的なことは、Sprite.renderで行うことが出来るが、凝った処理を行う場合は、SpriteUnitを使う
|
125
|
+
#--
|
126
|
+
#SpriteUnit = Struct.new([:dp], :bitmap, :ox, :oy, :ow, :oh, :x, :y, :cx, :cy)
|
127
|
+
#++
|
128
|
+
#([数字])は、配列として認識したときのインデックス番号に対応(Struct#[]メソッドを呼び出した時のインデックス)
|
129
|
+
#:bitmap([0]) -> 画像データ(SDL::Surfaceクラスのインスタンス)
|
130
|
+
#:ox([1]) -> 描画開始位置(x方向)
|
131
|
+
#:oy([2]) -> 描画開始位置(y方向)
|
132
|
+
#:ow([3]) -> 描画幅
|
133
|
+
#:oh([4]) -> 描画高さ
|
134
|
+
#:x([5]) -> 描画幅
|
135
|
+
#:y([6]) -> 描画高さ
|
136
|
+
#:cx([7]) -> 回転・拡大・縮小・鏡像の中心座標(x方向)
|
137
|
+
#:cy([8]) -> 回転・拡大・縮小・鏡像の中心座標(y方向)
|
138
|
+
SpriteUnit = SpriteUnitBase.new(:bitmap, :ox, :oy, :ow, :oh, :x, :y, :cx, :cy)
|
139
|
+
|
140
|
+
#==SpriteUnit生成ファクトリクラス
|
141
|
+
#SpriteUnit構造体のインスタンスを生成するためのクラス
|
142
|
+
class SpriteUnitFactory
|
143
|
+
PARAMS = [:bitmap, :ox, :oy, :ow, :oh, :x, :y, :cx, :cy]
|
144
|
+
#==SpriteUnitのインスタンスを生成する
|
145
|
+
#params: 初期化するSpriteUnit構造体の値。ハッシュ引数。引数のキーは、SpriteUnitのアクセサ名と同一。省略可能
|
146
|
+
def SpriteUnitFactory.create(params = nil)
|
147
|
+
unit = SpriteUnit.new(nil, 0, 0, 0, 0, 0, 0, 0, 0)
|
148
|
+
return SpriteUnitFactory.apply(unit, params)
|
149
|
+
end
|
150
|
+
|
151
|
+
#==SpriteUnitの各アクセサに対応した値を設定する
|
152
|
+
#(注)bitmapアクセサに値を設定する場合、ox,oy,ow,ohの値が自動的に、
|
153
|
+
#bitmapに対応する値(ox=0,oy=0,ow=bitmap.w,oh=bitmap.h)が設定される
|
154
|
+
#unit: 設定対象のSpriteUnit構造体
|
155
|
+
#params: 設定するSpriteUnit構造体の値。ハッシュ引数。引数のキーは、SpriteUnitのアクセサ名と同一
|
156
|
+
def SpriteUnitFactory.apply(unit, params)
|
157
|
+
if params && params.has_key?(:bitmap)
|
158
|
+
unit.bitmap = params[:bitmap]
|
159
|
+
unit.ox = 0
|
160
|
+
unit.oy = 0
|
161
|
+
unit.ow = unit.bitmap.w
|
162
|
+
unit.oh = unit.bitmap.h
|
163
|
+
end
|
164
|
+
PARAMS.each{|prm| unit[prm] = params[prm] if params.has_key?(prm) } if params
|
165
|
+
return unit
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|