ruby-miyako 2.1.9 → 2.1.10
Sign up to get free protection for your applications and to get access to all the features.
- data/README +35 -15
- data/lib/Miyako/API/layout.rb +110 -107
- data/lib/Miyako/API/sprite_list.rb +2 -0
- data/lib/Miyako/miyako.rb +2 -2
- data/miyako_input_audio.c +24 -0
- data/win/miyako_no_katana.so +0 -0
- metadata +2 -2
data/README
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
*******************************************************************************
|
2
2
|
【 作者名 】 サイロス誠
|
3
3
|
【 ソフト名 】 Interactive Media Authoring System "Miyako"
|
4
|
-
【 バージョン 】 2.1.
|
5
|
-
【 作成日 】 2010/
|
4
|
+
【 バージョン 】 2.1.10
|
5
|
+
【 作成日 】 2010/04/20
|
6
6
|
【 種別 】 フリーウェア
|
7
7
|
【 開発言語 】 Ruby 1.9.1
|
8
8
|
【 ランタイム 】 Ruby 1.9.1~,Ruby/SDL 2.1~,SDL
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
【 注意事項 】
|
17
17
|
|
18
|
-
本バージョンは、2.1.
|
18
|
+
本バージョンは、2.1.10公式リリース版です。
|
19
19
|
本バージョンでは、ドキュメント・リファレンスは不十分ですが、「サイログ。」内や、サンプルプログラムの紹介等で随時ドキュメントを公開して行きます。
|
20
20
|
(RDOC化を進めていますので、我こそはと思う方は是非・・・)
|
21
21
|
|
@@ -91,24 +91,21 @@ PAD : BUFFALO BGC-FC802
|
|
91
91
|
OS : Microsoft WindowsXp SP3
|
92
92
|
Microsoft WindowsVista Ultimate(x64) SP1
|
93
93
|
DEV : Notepad++ v5.3.1-6
|
94
|
-
|
94
|
+
mingw32版Ruby 1.9.2dev + Ruby/SDL 2.1.1
|
95
95
|
MinGW+MSYS(miyako_no_katanaビルド)
|
96
|
-
rcairo-1.8.0(miyako-cairo検証用)
|
97
96
|
|
98
97
|
<サブ開発PC>
|
99
|
-
Panasonic Let'sNOTE Light
|
100
|
-
CPU :
|
101
|
-
MEM :
|
98
|
+
Panasonic Let'sNOTE Light S9
|
99
|
+
CPU : Core i5
|
100
|
+
MEM : 4GB(2GBx2)
|
102
101
|
PAD : SANWA SUPPLY JY-P1W
|
103
|
-
OS : Microsoft
|
102
|
+
OS : Microsoft Windows7 x64
|
104
103
|
DEV : Notepad++ v5.3.1-6
|
105
|
-
mswin32版Ruby 1.9.
|
106
|
-
MinGW+MSYS(miyako_no_katanaビルド)
|
104
|
+
mswin32版Ruby 1.9.2dev + Ruby/SDL 2.1.1
|
107
105
|
|
108
106
|
【 動作確認環境 】
|
109
107
|
|
110
|
-
上記環境に追加して、
|
111
|
-
Ubuntu9.04(x86)+Ruby1.9.1+Ruby/SDL2.1.0で動作確認済み
|
108
|
+
上記環境に追加して、Ubuntu9.04(x86)+Ruby1.9.1+Ruby/SDL2.1.1で動作確認済み
|
112
109
|
|
113
110
|
【 動作環境 】
|
114
111
|
|
@@ -121,10 +118,9 @@ WindowsXp Home/Pro、WindowsVista、Linux、MacOSX等、Ruby/SDLが動作する
|
|
121
118
|
ビデオメモリ :8MB(32bitカラー対応、64MB以上奨励)
|
122
119
|
サウンドカード:必須(出来ればSoundBlaster Live!クラス)
|
123
120
|
|
124
|
-
Ruby1.9.1以降
|
121
|
+
Ruby1.9.1以降(Ruby1.9.2対応)
|
125
122
|
Ruby/SDL 2.1+対応SDLライブラリ群
|
126
123
|
(SDL、SDL_ttf、SDL_image、SDL_Mixer、SGE、smpeg)
|
127
|
-
rcairo 1.8.0以降(miyako-cairo使用時)
|
128
124
|
|
129
125
|
【 ファイル構成 】
|
130
126
|
|
@@ -1653,5 +1649,29 @@ v2.1.9(2010.03.07)
|
|
1653
1649
|
<インスタンスメソッド追加>
|
1654
1650
|
<インスタンスメソッド廃止>
|
1655
1651
|
|
1652
|
+
v2.1.10(2010.04.20)
|
1653
|
+
<バグ修正>
|
1654
|
+
・SpriteListクラスのオブジェクトからsnap等のレイアウト関係メソッドを呼び出すとプログラムが墜ちるバグを修正
|
1655
|
+
・Input.updateメソッドの処理に、イベントを逆順に取得する問題があった箇所を修正
|
1656
|
+
<機能改善>
|
1657
|
+
<仕様変更>
|
1658
|
+
<ファイル追加>
|
1659
|
+
<ファイル削除>
|
1660
|
+
<グローバル変数追加>
|
1661
|
+
<定数追加>
|
1662
|
+
<定数削除>
|
1663
|
+
<構造体追加>
|
1664
|
+
<クラス追加>
|
1665
|
+
<モジュール追加>
|
1666
|
+
<mixin>
|
1667
|
+
<クラス・モジュールメソッド追加>
|
1668
|
+
<クラス・モジュールメソッド廃止>
|
1669
|
+
<モジュール関数追加>
|
1670
|
+
<モジュール関数廃止>
|
1671
|
+
<インスタンスメソッド追加>
|
1672
|
+
<インスタンスメソッド廃止>
|
1673
|
+
<ドキュメント>
|
1674
|
+
・リファレンスマニュアルの項目追加
|
1675
|
+
|
1656
1676
|
*******************************************************************************
|
1657
1677
|
このReadMeファイルは「れ~どめ~えじた~」によって作成されました。
|
data/lib/Miyako/API/layout.rb
CHANGED
@@ -47,6 +47,9 @@ class Numeric
|
|
47
47
|
end
|
48
48
|
|
49
49
|
module Miyako
|
50
|
+
# for init_layout
|
51
|
+
module Screen
|
52
|
+
end
|
50
53
|
|
51
54
|
#==レイアウト情報を示す構造体
|
52
55
|
LayoutStruct = Struct.new(:pos, :size, :base, :snap, :on_move)
|
@@ -74,7 +77,7 @@ module Miyako
|
|
74
77
|
@layout = LayoutStruct.new
|
75
78
|
@layout.pos = Point.new(0, 0)
|
76
79
|
@layout.size = Size.new(0, 0)
|
77
|
-
@layout.base = Screen
|
80
|
+
@layout.base = Miyako::Screen
|
78
81
|
@layout.snap = LayoutSnapStruct.new(nil, Array.new)
|
79
82
|
@layout.on_move = []
|
80
83
|
end
|
@@ -110,162 +113,162 @@ module Miyako
|
|
110
113
|
# move,move_toの各メソッド。
|
111
114
|
#返却値:: ブロック管理配列
|
112
115
|
def on_move
|
113
|
-
|
116
|
+
return @layout.on_move
|
114
117
|
end
|
115
118
|
|
116
119
|
#===mixinしたインスタンスの位置を左端(x軸)に移動させる
|
117
|
-
|
120
|
+
#設置するとき、基準となる空間の内側に設置される
|
118
121
|
#ブロックでは、数値を返却することで、左端からのマージンを設定できる(正の方向へ移動)
|
119
122
|
#ブロック引数は、自分自身の幅
|
120
123
|
#返却値:: 自分自身
|
121
124
|
def left!(&margin)
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
+
base = @layout.base.rect
|
126
|
+
t = @layout.pos[0]
|
127
|
+
@layout.pos[0] = base[0] + (margin ? margin[base[2]].to_i : 0)
|
125
128
|
@layout.snap.children.each{|c| c.left(&margin) }
|
126
129
|
update_layout(@layout.pos[0]-t, 0)
|
127
130
|
@layout.on_move.each{|block|
|
128
131
|
block.call(self, @layout.pos[0], @layout.pos[1], @layout.pos[0]-t, 0)
|
129
132
|
}
|
130
|
-
|
133
|
+
return self
|
131
134
|
end
|
132
135
|
|
133
136
|
#===mixinしたインスタンスの位置を左端(x軸)に移動させる
|
134
|
-
|
137
|
+
#設置するとき、基準となる空間の外側に設置される
|
135
138
|
#ブロックでは、数値を返却することで、左端からのマージンを設定できる(負の方向へ移動)
|
136
139
|
#ブロック引数は、自分自身の幅
|
137
140
|
#返却値:: 自分自身
|
138
141
|
def outside_left!(&margin)
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
+
base = @layout.base.rect
|
143
|
+
t = @layout.pos[0]
|
144
|
+
@layout.pos[0] = base[0] - @layout.size[0] - (margin ? margin[base[2]].to_i : 0)
|
142
145
|
update_layout(@layout.pos[0]-t, 0)
|
143
146
|
@layout.on_move.each{|block|
|
144
147
|
block.call(self, @layout.pos[0], @layout.pos[1], @layout.pos[0]-t, 0)
|
145
148
|
}
|
146
|
-
|
149
|
+
return self
|
147
150
|
end
|
148
151
|
|
149
152
|
#===mixinしたインスタンスの位置を中間(x軸)に移動させる
|
150
153
|
#返却値:: 自分自身
|
151
154
|
def center!
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
+
base = @layout.base.rect
|
156
|
+
t = @layout.pos[0]
|
157
|
+
@layout.pos[0] = base[0] + (base[2] >> 1) - (@layout.size[0] >> 1)
|
155
158
|
update_layout(@layout.pos[0]-t, 0)
|
156
159
|
@layout.on_move.each{|block|
|
157
160
|
block.call(self, @layout.pos[0], @layout.pos[1], @layout.pos[0]-t, 0)
|
158
161
|
}
|
159
|
-
|
162
|
+
return self
|
160
163
|
end
|
161
164
|
|
162
165
|
#===mixinしたインスタンスの位置を右端(x軸)に移動させる
|
163
|
-
|
166
|
+
#設置するとき、基準となる空間の内側に設置される
|
164
167
|
#ブロックでは、数値を返却することで、右端からのマージンを設定できる(負の方向へ移動)
|
165
168
|
#ブロック引数は、自分自身の幅
|
166
169
|
#返却値:: 自分自身
|
167
170
|
def right!(&margin)
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
+
base = @layout.base.rect
|
172
|
+
t = @layout.pos[0]
|
173
|
+
@layout.pos[0] = base[0] + base[2] - @layout.size[0] - (margin ? margin[base[2]].to_i : 0)
|
171
174
|
update_layout(@layout.pos[0]-t, 0)
|
172
175
|
@layout.on_move.each{|block|
|
173
176
|
block.call(self, @layout.pos[0], @layout.pos[1], @layout.pos[0]-t, 0)
|
174
177
|
}
|
175
|
-
|
178
|
+
return self
|
176
179
|
end
|
177
180
|
|
178
181
|
#===mixinしたインスタンスの位置を右端(x軸)に移動させる
|
179
|
-
|
182
|
+
#設置するとき、基準となる空間の外側に設置される
|
180
183
|
#ブロックでは、数値を返却することで、右端からのマージンを設定できる(正の方向へ移動)
|
181
184
|
#ブロック引数は、自分自身の幅
|
182
185
|
#返却値:: 自分自身
|
183
186
|
def outside_right!(&margin)
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
+
base = @layout.base.rect
|
188
|
+
t = @layout.pos[0]
|
189
|
+
@layout.pos[0] = base[0] + base[2] + (margin ? margin[base[2]].to_i : 0)
|
187
190
|
update_layout(@layout.pos[0]-t, 0)
|
188
191
|
@layout.on_move.each{|block|
|
189
192
|
block.call(self, @layout.pos[0], @layout.pos[1], @layout.pos[0]-t, 0)
|
190
193
|
}
|
191
|
-
|
194
|
+
return self
|
192
195
|
end
|
193
196
|
|
194
197
|
#===mixinしたインスタンスの位置を上端(y軸)に移動させる
|
195
|
-
|
198
|
+
#設置するとき、基準となる空間の内側に設置される
|
196
199
|
#ブロックでは、数値を返却することで、上端からのマージンを設定できる(正の方向へ移動)
|
197
200
|
#ブロック引数は、自分自身の幅
|
198
201
|
#返却値:: 自分自身
|
199
202
|
def top!(&margin)
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
+
base = @layout.base.rect
|
204
|
+
t = @layout.pos[1]
|
205
|
+
@layout.pos[1] = base[1] + (margin ? margin[base[3]].to_i : 0)
|
203
206
|
update_layout(0, @layout.pos[1]-t)
|
204
207
|
@layout.on_move.each{|block|
|
205
208
|
block.call(self, @layout.pos[0], @layout.pos[1], 0, @layout.pos[1]-t)
|
206
209
|
}
|
207
|
-
|
210
|
+
return self
|
208
211
|
end
|
209
212
|
|
210
213
|
#===mixinしたインスタンスの位置を上端(y軸)に移動させる
|
211
|
-
|
214
|
+
#設置するとき、基準となる空間の内側に設置される
|
212
215
|
#ブロックでは、数値を返却することで、上端からのマージンを設定できる(負の方向へ移動)
|
213
216
|
#ブロック引数は、自分自身の幅
|
214
217
|
#返却値:: 自分自身
|
215
218
|
def outside_top!(&margin)
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
+
base = @layout.base.rect
|
220
|
+
t = @layout.pos[1]
|
221
|
+
@layout.pos[1] = base[1] - @layout.size[1] - (margin ? margin[base[3]].to_i : 0)
|
219
222
|
update_layout(0, @layout.pos[1]-t)
|
220
223
|
@layout.on_move.each{|block|
|
221
224
|
block.call(self, @layout.pos[0], @layout.pos[1], 0, @layout.pos[1]-t)
|
222
225
|
}
|
223
|
-
|
226
|
+
return self
|
224
227
|
end
|
225
228
|
|
226
229
|
#===mixinしたインスタンスの位置を中間(y軸)に移動させる
|
227
230
|
#返却値:: 自分自身
|
228
231
|
def middle!
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
+
base = @layout.base.rect
|
233
|
+
t = @layout.pos[1]
|
234
|
+
@layout.pos[1] = base[1] + (base[3] >> 1) - (@layout.size[1] >> 1)
|
232
235
|
update_layout(0, @layout.pos[1]-t)
|
233
236
|
@layout.on_move.each{|block|
|
234
237
|
block.call(self, @layout.pos[0], @layout.pos[1], 0, @layout.pos[1]-t)
|
235
238
|
}
|
236
|
-
|
239
|
+
return self
|
237
240
|
end
|
238
241
|
|
239
242
|
#===mixinしたインスタンスの位置を下端(y軸)に移動させる
|
240
|
-
|
243
|
+
#設置するとき、基準となる空間の内側に設置される
|
241
244
|
#ブロックでは、数値を返却することで、下端からのマージンを設定できる(負の方向へ移動)
|
242
245
|
#ブロック引数は、自分自身の幅
|
243
246
|
#返却値:: 自分自身
|
244
247
|
def bottom!(&margin)
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
+
base = @layout.base.rect
|
249
|
+
t = @layout.pos[1]
|
250
|
+
@layout.pos[1] = base[1] + base[3] - @layout.size[1] - (margin ? margin[base[3]].to_i : 0)
|
248
251
|
update_layout(0, @layout.pos[1]-t)
|
249
252
|
@layout.on_move.each{|block|
|
250
253
|
block.call(self, @layout.pos[0], @layout.pos[1], 0, @layout.pos[1]-t)
|
251
254
|
}
|
252
|
-
|
255
|
+
return self
|
253
256
|
end
|
254
257
|
|
255
258
|
#===mixinしたインスタンスの位置を下端(y軸)に移動させる
|
256
|
-
|
259
|
+
#設置するとき、基準となる空間の外側に設置される
|
257
260
|
#ブロックでは、数値を返却することで、下端からのマージンを設定できる(正の方向へ移動)
|
258
261
|
#ブロック引数は、自分自身の幅
|
259
262
|
#返却値:: 自分自身
|
260
263
|
def outside_bottom!(&margin)
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
+
base = @layout.base.rect
|
265
|
+
t = @layout.pos[1]
|
266
|
+
@layout.pos[1] = base[1] + base[3] + (margin ? margin[base[3]].to_i : 0)
|
264
267
|
update_layout(0, @layout.pos[1]-t)
|
265
268
|
@layout.on_move.each{|block|
|
266
269
|
block.call(self, @layout.pos[0], @layout.pos[1], 0, @layout.pos[1]-t)
|
267
270
|
}
|
268
|
-
|
271
|
+
return self
|
269
272
|
end
|
270
273
|
|
271
274
|
#===インスタンスを画面(スナップ先インスタンス)の中心に移動する
|
@@ -277,137 +280,137 @@ module Miyako
|
|
277
280
|
end
|
278
281
|
|
279
282
|
#===mixinしたインスタンスの位置を左端(x軸)に移動させたときの位置を返す
|
280
|
-
|
281
|
-
|
283
|
+
#但し、移動したときの位置を返すだけで、自身の位置は変わらない
|
284
|
+
#基準となる空間の内側に設置されたとして算出する
|
282
285
|
#ブロックでは、数値を返却することで、左端からのマージンを設定できる(正の方向へ移動)
|
283
286
|
#ブロック引数は、自分自身の幅
|
284
287
|
#返却値:: 移動後の位置(Position構造体)
|
285
288
|
def left(&margin)
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
+
base = @layout.base.rect
|
290
|
+
pos = @layout.pos.dup
|
291
|
+
pos[0] = base[0] + (margin ? margin[base[2]].to_i : 0)
|
289
292
|
return pos
|
290
293
|
end
|
291
294
|
|
292
295
|
#===mixinしたインスタンスの位置を左端(x軸)に移動させたときの位置を返す
|
293
|
-
|
294
|
-
|
296
|
+
#但し、移動したときの位置を返すだけで、自身の位置は変わらない
|
297
|
+
#基準となる空間の外側に設置されたとして算出する
|
295
298
|
#ブロックでは、数値を返却することで、左端からのマージンを設定できる(負の方向へ移動)
|
296
299
|
#ブロック引数は、自分自身の幅
|
297
300
|
#返却値:: 移動後の位置(Position構造体)
|
298
301
|
def outside_left(&margin)
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
+
base = @layout.base.rect
|
303
|
+
pos = @layout.pos.dup
|
304
|
+
pos[0] = base[0] - @layout.size[0] - (margin ? margin[base[2]].to_i : 0)
|
302
305
|
return pos
|
303
306
|
end
|
304
307
|
|
305
308
|
#===mixinしたインスタンスの位置を中間(x軸)に移動させたときの位置を返す
|
306
|
-
|
309
|
+
#但し、移動したときの位置を返すだけで、自身の位置は変わらない
|
307
310
|
#返却値:: 移動後の位置(Position構造体)
|
308
311
|
def center
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
+
base = @layout.base.rect
|
313
|
+
pos = @layout.pos.dup
|
314
|
+
pos[0] = base[0] + (base[2] >> 1) - (@layout.size[0] >> 1)
|
312
315
|
return pos
|
313
316
|
end
|
314
317
|
|
315
318
|
#===mixinしたインスタンスの位置を右端(x軸)に移動させたときの位置を返す
|
316
|
-
|
317
|
-
|
319
|
+
#但し、移動したときの位置を返すだけで、自身の位置は変わらない
|
320
|
+
#基準となる空間の内側に設置されたとして算出する
|
318
321
|
#ブロックでは、数値を返却することで、右端からのマージンを設定できる(負の方向へ移動)
|
319
322
|
#ブロック引数は、自分自身の幅
|
320
323
|
#返却値:: 移動後の位置(Position構造体)
|
321
324
|
def right(&margin)
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
+
base = @layout.base.rect
|
326
|
+
pos = @layout.pos.dup
|
327
|
+
pos[0] = base[0] + base[2] - @layout.size[0] - (margin ? margin[base[2]].to_i : 0)
|
325
328
|
return pos
|
326
329
|
end
|
327
330
|
|
328
331
|
#===mixinしたインスタンスの位置を右端(x軸)に移動させたときの位置を返す
|
329
|
-
|
330
|
-
|
332
|
+
#但し、移動したときの位置を返すだけで、自身の位置は変わらない
|
333
|
+
#基準となる空間の外側に設置されたとして算出する
|
331
334
|
#ブロックでは、数値を返却することで、右端からのマージンを設定できる(正の方向へ移動)
|
332
335
|
#ブロック引数は、自分自身の幅
|
333
336
|
#返却値:: 移動後の位置(Position構造体)
|
334
337
|
def outside_right(&margin)
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
+
base = @layout.base.rect
|
339
|
+
pos = @layout.pos.dup
|
340
|
+
pos[0] = base[0] + base[2] + (margin ? margin[base[2]].to_i : 0)
|
338
341
|
return pos
|
339
342
|
end
|
340
343
|
|
341
344
|
#===mixinしたインスタンスの位置を上端(y軸)に移動させたときの位置を返す
|
342
|
-
|
343
|
-
|
345
|
+
#但し、移動したときの位置を返すだけで、自身の位置は変わらない
|
346
|
+
#基準となる空間の内側に設置されたとして算出する
|
344
347
|
#ブロックでは、数値を返却することで、上端からのマージンを設定できる(正の方向へ移動)
|
345
348
|
#ブロック引数は、自分自身の幅
|
346
349
|
#返却値:: 移動後の位置(Position構造体)
|
347
350
|
def top(&margin)
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
+
base = @layout.base.rect
|
352
|
+
pos = @layout.pos.dup
|
353
|
+
pos[1] = base[1] + (margin ? margin[base[3]].to_i : 0)
|
351
354
|
return pos
|
352
355
|
end
|
353
356
|
|
354
357
|
#===mixinしたインスタンスの位置を上端(y軸)に移動させたときの位置を返す
|
355
|
-
|
356
|
-
|
358
|
+
#但し、移動したときの位置を返すだけで、自身の位置は変わらない
|
359
|
+
#基準となる空間の外側に設置されたとして算出する
|
357
360
|
#ブロックでは、数値を返却することで、上端からのマージンを設定できる(負の方向へ移動)
|
358
361
|
#ブロック引数は、自分自身の幅
|
359
362
|
#返却値:: 移動後の位置(Position構造体)
|
360
363
|
def outside_top(&margin)
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
+
base = @layout.base.rect
|
365
|
+
pos = @layout.pos.dup
|
366
|
+
pos[1] = base[1] - @layout.size[1] - (margin ? margin[base[3]].to_i : 0)
|
364
367
|
return pos
|
365
368
|
end
|
366
369
|
|
367
370
|
#===mixinしたインスタンスの位置を中間(y軸)に移動させたときの位置を返す
|
368
|
-
|
371
|
+
#但し、移動したときの位置を返すだけで、自身の位置は変わらない
|
369
372
|
#返却値:: 移動後の位置(Position構造体)
|
370
373
|
def middle
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
+
base = @layout.base.rect
|
375
|
+
pos = @layout.pos.dup
|
376
|
+
pos[1] = base[1] + (base[3] >> 1) - (@layout.size[1] >> 1)
|
374
377
|
return pos
|
375
378
|
end
|
376
379
|
|
377
380
|
#===mixinしたインスタンスの位置を下端(y軸)に移動させたときの位置を返す
|
378
|
-
|
379
|
-
|
381
|
+
#但し、移動したときの位置を返すだけで、自身の位置は変わらない
|
382
|
+
#基準となる空間の内側に設置されたとして算出する
|
380
383
|
#ブロックでは、数値を返却することで、下端からのマージンを設定できる(負の方向へ移動)
|
381
384
|
#ブロック引数は、自分自身の幅
|
382
385
|
#返却値:: 移動後の位置(Position構造体)
|
383
386
|
def bottom(&margin)
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
+
base = @layout.base.rect
|
388
|
+
pos = @layout.pos.dup
|
389
|
+
pos[1] = base[1] + base[3] - @layout.size[1] - (margin ? margin[base[3]].to_i : 0)
|
387
390
|
return pos
|
388
391
|
end
|
389
392
|
|
390
393
|
#===mixinしたインスタンスの位置を下端(y軸)に移動させたときの位置を返す
|
391
|
-
|
392
|
-
|
394
|
+
#但し、移動したときの位置を返すだけで、自身の位置は変わらない
|
395
|
+
#基準となる空間の外側に設置されたとして算出する
|
393
396
|
#ブロックでは、数値を返却することで、下端からのマージンを設定できる(正の方向へ移動)
|
394
397
|
#ブロック引数は、自分自身の幅
|
395
398
|
#返却値:: 移動後の位置(Position構造体)
|
396
399
|
def outside_bottom(&margin)
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
+
base = @layout.base.rect
|
401
|
+
pos = @layout.pos.dup
|
402
|
+
pos[1] = base[1] + base[3] + (margin ? margin[base[3]].to_i : 0)
|
400
403
|
return pos
|
401
404
|
end
|
402
405
|
|
403
406
|
#===インスタンスを画面(スナップ先インスタンス)の中心に移動したときの位置を返す
|
404
|
-
|
407
|
+
#但し、移動したときの位置を返すだけで、自身の位置は変わらない
|
405
408
|
#返却値:: 移動後の位置(Position構造体)
|
406
409
|
def centering
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
410
|
+
base = @layout.base.rect
|
411
|
+
pos = @layout.pos.dup
|
412
|
+
pos[0] = base[0] + (base[2] >> 1) - (@layout.size[0] >> 1)
|
413
|
+
pos[1] = base[1] + (base[3] >> 1) - (@layout.size[1] >> 1)
|
411
414
|
return pos
|
412
415
|
end
|
413
416
|
|
@@ -461,7 +464,7 @@ module Miyako
|
|
461
464
|
alias :layout_size :size
|
462
465
|
|
463
466
|
#===インスタンスのサイズをレイアウト情報に反映させる
|
464
|
-
|
467
|
+
#このメソッドが呼び出されると、スナップ先のインスタンスの位置情報がリセットされることに注意
|
465
468
|
#_w_:: インスタンスの幅(たとえば、Sprite#ow の値)
|
466
469
|
#_h_:: インスタンスの幅(たとえば、Sprite#oh の値)
|
467
470
|
#返却値:: 自分自身を返す
|
@@ -508,7 +511,7 @@ module Miyako
|
|
508
511
|
end
|
509
512
|
|
510
513
|
#===すべてのインスタンスとの依存関係を解消する
|
511
|
-
|
514
|
+
#このメソッドが呼び出されると、スナップ先のインスタンスの位置情報がリセットされることに注意
|
512
515
|
#返却値:: 自分自身を返す
|
513
516
|
def reset_snap
|
514
517
|
@layout.snap.sprite = nil
|
@@ -616,9 +619,9 @@ module Miyako
|
|
616
619
|
# 生成される線分は、x方向が[pos.x,pos.x+ow-1]、y方向が[pos.y,pos.y+oh-1]となる
|
617
620
|
#返却値:: 生成したSegments構造体インスタンス
|
618
621
|
def segment
|
619
|
-
|
622
|
+
return Segments.new([@layout.pos[0],
|
620
623
|
@layout.pos[0]+@layout.size[0]-1],
|
621
|
-
|
624
|
+
[@layout.pos[1],
|
622
625
|
@layout.pos[1]+@layout.size[1]-1])
|
623
626
|
end
|
624
627
|
end
|
data/lib/Miyako/miyako.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
#=コンテンツ作成ライブラリMiyako2.1
|
4
4
|
#
|
5
5
|
#Authors:: サイロス誠
|
6
|
-
#Version:: 2.1.
|
6
|
+
#Version:: 2.1.10
|
7
7
|
#Copyright:: 2007-2010 Cyross Makoto
|
8
8
|
#License:: LGPL2.1
|
9
9
|
#
|
@@ -63,7 +63,7 @@ Thread.abort_on_exception = true
|
|
63
63
|
|
64
64
|
#==Miyako基幹モジュール
|
65
65
|
module Miyako
|
66
|
-
VERSION = "2.1.
|
66
|
+
VERSION = "2.1.10"
|
67
67
|
|
68
68
|
#===アプリケーション実行中に演奏する音楽のサンプリングレートを指定する
|
69
69
|
#単位はHz(周波数)
|
data/miyako_input_audio.c
CHANGED
@@ -69,9 +69,15 @@ static volatile VALUE sy_ent = Qnil;
|
|
69
69
|
*/
|
70
70
|
static VALUE input_update(VALUE self)
|
71
71
|
{
|
72
|
+
#if 0
|
72
73
|
int i, len;
|
73
74
|
VALUE *ptr;
|
74
75
|
VALUE keys, e_list, e;
|
76
|
+
#else
|
77
|
+
int i;
|
78
|
+
VALUE *ptr;
|
79
|
+
VALUE keys, e, proc;
|
80
|
+
#endif
|
75
81
|
|
76
82
|
VALUE btn = rb_iv_get(self, "@@btn");
|
77
83
|
VALUE mouse = rb_iv_get(self, "@@mouse");
|
@@ -102,6 +108,7 @@ static VALUE input_update(VALUE self)
|
|
102
108
|
rb_hash_aset(drop, sy_middle, Qfalse);
|
103
109
|
rb_hash_aset(drop, sy_right, Qfalse);
|
104
110
|
|
111
|
+
#if 0
|
105
112
|
e_list = rb_ary_new();
|
106
113
|
e = rb_funcall(cEvent, id_poll, 0);
|
107
114
|
while(e != Qnil)
|
@@ -126,6 +133,23 @@ static VALUE input_update(VALUE self)
|
|
126
133
|
rb_hash_aset(pushed, sy_ent, nZero);
|
127
134
|
}
|
128
135
|
}
|
136
|
+
#else
|
137
|
+
e = rb_funcall(cEvent, id_poll, 0);
|
138
|
+
while(e != Qnil)
|
139
|
+
{
|
140
|
+
proc = rb_hash_lookup(process, CLASS_OF(e));
|
141
|
+
if(proc != Qnil){ rb_funcall(proc, id_call, 1, e); }
|
142
|
+
if(rb_hash_lookup(trigger, sy_alt) == nOne &&
|
143
|
+
rb_hash_lookup(pushed, sy_ent) == nOne &&
|
144
|
+
toggle == Qtrue)
|
145
|
+
{
|
146
|
+
rb_funcall(mScreen, rb_intern("toggle_mode"), 0);
|
147
|
+
rb_hash_aset(trigger, sy_alt, nZero);
|
148
|
+
rb_hash_aset(pushed, sy_ent, nZero);
|
149
|
+
}
|
150
|
+
e = rb_funcall(cEvent, id_poll, 0);
|
151
|
+
}
|
152
|
+
#endif
|
129
153
|
|
130
154
|
return Qnil;
|
131
155
|
}
|
data/win/miyako_no_katana.so
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-miyako
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cyross Makoto
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-04-12 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|