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 CHANGED
@@ -1,8 +1,8 @@
1
1
  *******************************************************************************
2
2
  【 作者名 】 サイロス誠
3
3
  【 ソフト名 】 Interactive Media Authoring System "Miyako"
4
- 【 バージョン 】 2.1.9
5
- 【 作成日 】 2010/02/01
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.9公式リリース版です。
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
- mswin32版Ruby 1.9.1-p129 + Ruby/SDL 2.1
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 R3
100
- CPU : PentiumM 1.1GHz
101
- MEM : 784(256+512)MB
98
+ Panasonic Let'sNOTE Light S9
99
+ CPU : Core i5
100
+ MEM : 4GB(2GBx2)
102
101
  PAD : SANWA SUPPLY JY-P1W
103
- OS : Microsoft WindowsXp SP3
102
+ OS : Microsoft Windows7 x64
104
103
  DEV : Notepad++ v5.3.1-6
105
- mswin32版Ruby 1.9.1-p129 + Ruby/SDL 2.1
106
- MinGW+MSYS(miyako_no_katanaビルド)
104
+ mswin32版Ruby 1.9.2dev + Ruby/SDL 2.1.1
107
105
 
108
106
  【 動作確認環境 】
109
107
 
110
- 上記環境に追加して、VMWarePlayer上で動作している
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ファイルは「れ~どめ~えじた~」によって作成されました。
@@ -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
- return @layout.on_move
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
- base = @layout.base.rect
123
- t = @layout.pos[0]
124
- @layout.pos[0] = base[0] + (margin ? margin[base[2]].to_i : 0)
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
- return self
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
- base = @layout.base.rect
140
- t = @layout.pos[0]
141
- @layout.pos[0] = base[0] - @layout.size[0] - (margin ? margin[base[2]].to_i : 0)
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
- return self
149
+ return self
147
150
  end
148
151
 
149
152
  #===mixinしたインスタンスの位置を中間(x軸)に移動させる
150
153
  #返却値:: 自分自身
151
154
  def center!
152
- base = @layout.base.rect
153
- t = @layout.pos[0]
154
- @layout.pos[0] = base[0] + (base[2] >> 1) - (@layout.size[0] >> 1)
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
- return self
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
- base = @layout.base.rect
169
- t = @layout.pos[0]
170
- @layout.pos[0] = base[0] + base[2] - @layout.size[0] - (margin ? margin[base[2]].to_i : 0)
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
- return self
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
- base = @layout.base.rect
185
- t = @layout.pos[0]
186
- @layout.pos[0] = base[0] + base[2] + (margin ? margin[base[2]].to_i : 0)
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
- return self
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
- base = @layout.base.rect
201
- t = @layout.pos[1]
202
- @layout.pos[1] = base[1] + (margin ? margin[base[3]].to_i : 0)
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
- return self
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
- base = @layout.base.rect
217
- t = @layout.pos[1]
218
- @layout.pos[1] = base[1] - @layout.size[1] - (margin ? margin[base[3]].to_i : 0)
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
- return self
226
+ return self
224
227
  end
225
228
 
226
229
  #===mixinしたインスタンスの位置を中間(y軸)に移動させる
227
230
  #返却値:: 自分自身
228
231
  def middle!
229
- base = @layout.base.rect
230
- t = @layout.pos[1]
231
- @layout.pos[1] = base[1] + (base[3] >> 1) - (@layout.size[1] >> 1)
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
- return self
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
- base = @layout.base.rect
246
- t = @layout.pos[1]
247
- @layout.pos[1] = base[1] + base[3] - @layout.size[1] - (margin ? margin[base[3]].to_i : 0)
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
- return self
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
- base = @layout.base.rect
262
- t = @layout.pos[1]
263
- @layout.pos[1] = base[1] + base[3] + (margin ? margin[base[3]].to_i : 0)
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
- return self
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
- base = @layout.base.rect
287
- pos = @layout.pos.dup
288
- pos[0] = base[0] + (margin ? margin[base[2]].to_i : 0)
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
- base = @layout.base.rect
300
- pos = @layout.pos.dup
301
- pos[0] = base[0] - @layout.size[0] - (margin ? margin[base[2]].to_i : 0)
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
- base = @layout.base.rect
310
- pos = @layout.pos.dup
311
- pos[0] = base[0] + (base[2] >> 1) - (@layout.size[0] >> 1)
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
- base = @layout.base.rect
323
- pos = @layout.pos.dup
324
- pos[0] = base[0] + base[2] - @layout.size[0] - (margin ? margin[base[2]].to_i : 0)
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
- base = @layout.base.rect
336
- pos = @layout.pos.dup
337
- pos[0] = base[0] + base[2] + (margin ? margin[base[2]].to_i : 0)
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
- base = @layout.base.rect
349
- pos = @layout.pos.dup
350
- pos[1] = base[1] + (margin ? margin[base[3]].to_i : 0)
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
- base = @layout.base.rect
362
- pos = @layout.pos.dup
363
- pos[1] = base[1] - @layout.size[1] - (margin ? margin[base[3]].to_i : 0)
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
- base = @layout.base.rect
372
- pos = @layout.pos.dup
373
- pos[1] = base[1] + (base[3] >> 1) - (@layout.size[1] >> 1)
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
- base = @layout.base.rect
385
- pos = @layout.pos.dup
386
- pos[1] = base[1] + base[3] - @layout.size[1] - (margin ? margin[base[3]].to_i : 0)
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
- base = @layout.base.rect
398
- pos = @layout.pos.dup
399
- pos[1] = base[1] + base[3] + (margin ? margin[base[3]].to_i : 0)
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
- base = @layout.base.rect
408
- pos = @layout.pos.dup
409
- pos[0] = base[0] + (base[2] >> 1) - (@layout.size[0] >> 1)
410
- pos[1] = base[1] + (base[3] >> 1) - (@layout.size[1] >> 1)
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
- return Segments.new([@layout.pos[0],
622
+ return Segments.new([@layout.pos[0],
620
623
  @layout.pos[0]+@layout.size[0]-1],
621
- [@layout.pos[1],
624
+ [@layout.pos[1],
622
625
  @layout.pos[1]+@layout.size[1]-1])
623
626
  end
624
627
  end
@@ -156,6 +156,8 @@ module Miyako
156
156
  #_pairs_:: 生成元のインスタンス
157
157
  #返却値:: 生成したインスタンス
158
158
  def initialize(pairs = nil)
159
+ init_layout
160
+ set_layout_size(1,1)
159
161
  @list = []
160
162
  if pairs.is_a?(Array)
161
163
  pairs.each_with_index{|pair, i|
data/lib/Miyako/miyako.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  #=コンテンツ作成ライブラリMiyako2.1
4
4
  #
5
5
  #Authors:: サイロス誠
6
- #Version:: 2.1.9
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.9"
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
  }
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.9
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-03-07 00:00:00 +09:00
12
+ date: 2010-04-12 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies: []
15
15