ruby-miyako-mswin32 2.1.11 → 2.1.12

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  *******************************************************************************
2
2
  【 作者名 】 サイロス誠
3
3
  【 ソフト名 】 Interactive Media Authoring System "Miyako"
4
- 【 バージョン 】 2.1.11
5
- 【 作成日 】 2010/05/01
4
+ 【 バージョン 】 2.1.12
5
+ 【 作成日 】 2010/05/04
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.11公式リリース版です。
18
+ 本バージョンは、2.1.12公式リリース版です。
19
19
  本バージョンでは、ドキュメント・リファレンスは不十分ですが、「サイログ。」内や、サンプルプログラムの紹介等で随時ドキュメントを公開して行きます。
20
20
  (RDOC化を進めていますので、我こそはと思う方は是非・・・)
21
21
 
@@ -1727,5 +1727,54 @@ Drawer
1727
1727
  <ドキュメント>
1728
1728
  ・リファレンスマニュアルの項目追加
1729
1729
 
1730
+ v2.1.12(2010.05.04)
1731
+ <バグ修正>
1732
+ ・SpriteAnimation.newで、move_offsetパラメータの値によって表示位置が狂うバグを修正
1733
+ ・Layout#.left!で、無駄なコードがあったため削除
1734
+ <機能改善>
1735
+ <仕様変更>
1736
+ ・SpriteArray(SpriteList)#update_animation返却値を「要素のどれか一つが変更になればtrue」に変更
1737
+ <ファイル追加>
1738
+ <ファイル削除>
1739
+ <グローバル変数追加>
1740
+ <定数追加>
1741
+ <定数削除>
1742
+ <構造体追加>
1743
+ <クラス追加>
1744
+ <モジュール追加>
1745
+ <mixin>
1746
+ <クラス・モジュールメソッド追加>
1747
+ <クラス・モジュールメソッド廃止>
1748
+ <モジュール関数追加>
1749
+ ・SpriteBase#.render_d
1750
+ ・SpriteArray#.render_d
1751
+ <モジュール関数廃止>
1752
+ <インスタンスメソッド追加>
1753
+ ・Sprite#render_d
1754
+ ・SpriteList#render_d
1755
+ ・Point#update!
1756
+ ・Point#update_by_point!
1757
+ ・Point#update_by_size!
1758
+ ・Point#update_by_rect!
1759
+ ・Point#update_by_square!
1760
+ ・Size#update!
1761
+ ・Size#update_by_point!
1762
+ ・Size#update_by_size!
1763
+ ・Size#update_by_rect!
1764
+ ・Size#update_by_square!
1765
+ ・Rect#update!
1766
+ ・Rect#update_by_point!
1767
+ ・Rect#update_by_size!
1768
+ ・Rect#update_by_rect!
1769
+ ・Rect#update_by_square!
1770
+ ・Square#update!
1771
+ ・Square#update_by_point!
1772
+ ・Square#update_by_size!
1773
+ ・Square#update_by_rect!
1774
+ ・Square#update_by_square!
1775
+ ・Segment#update!
1776
+ <インスタンスメソッド廃止>
1777
+ <ドキュメント>
1778
+
1730
1779
  *******************************************************************************
1731
1780
  このReadMeファイルは「れ~どめ~えじた~」によって作成されました。
@@ -125,7 +125,6 @@ module Miyako
125
125
  base = @layout.base.rect
126
126
  t = @layout.pos[0]
127
127
  @layout.pos[0] = base[0] + (margin ? margin[base[2]].to_i : 0)
128
- @layout.snap.children.each{|c| c.left(&margin) }
129
128
  update_layout(@layout.pos[0]-t, 0)
130
129
  @layout.on_move.each{|block|
131
130
  block.call(self, @layout.pos[0], @layout.pos[1], @layout.pos[0]-t, 0)
@@ -153,10 +153,11 @@ module Miyako
153
153
  #返却値:: 自分自身を返す
154
154
  def render_xy(x, y)
155
155
  if [:pos, :move_to!].all?{|mn| self.class.method_defined?(mn)}
156
- old_pos = self.pos
156
+ ox = self.pos[0]
157
+ oy = self.pos[1]
157
158
  self.move_to!(x,y)
158
159
  self.render
159
- self.move_to!(*old_pos)
160
+ self.move_to!(ox,oy)
160
161
  return self
161
162
  end
162
163
  return self.render
@@ -173,15 +174,36 @@ module Miyako
173
174
  #返却値:: 自分自身を返す
174
175
  def render_xy_to(dst, x, y)
175
176
  if [:pos, :move_to!].all?{|mn| self.class.method_defined?(mn)}
176
- old_pos = self.pos
177
+ ox = self.pos[0]
178
+ oy = self.pos[1]
177
179
  self.move_to!(x,y)
178
180
  self.render_to(dst)
179
- self.move_to!(*old_pos)
181
+ self.move_to!(ox, oy)
180
182
  return self
181
183
  end
182
184
  return self.render_to(dst)
183
185
  end
184
186
 
187
+ #===位置を指定して画面への描画を指示するメソッドのテンプレート
188
+ #オブジェクトで保持している位置情報ではなく、引数で渡された位置に描画する
189
+ #基本的に、メソッドのオーバーライドにより機能するが、pos,move_to!メソッドを持っているときは、
190
+ #これらのメソッドを呼び出して同じ動作を行うが処理速度的に課題あり
191
+ #ただし、上記のメソッドを持っていない場合は、単純にrenderメソッドを呼び出す
192
+ #_dx_:: 描画位置のx座標
193
+ #_dy_:: 描画位置のy座標
194
+ #返却値:: 自分自身を返す
195
+ def render_d(dx, dy)
196
+ if [:pos, :move!, :move_to!].all?{|mn| self.class.method_defined?(mn)}
197
+ ox = self.pos[0]
198
+ oy = self.pos[1]
199
+ self.move!(dx,dy)
200
+ self.render
201
+ self.move_to!(ox,oy)
202
+ return self
203
+ end
204
+ return self.render
205
+ end
206
+
185
207
  #===画面への描画を指示するメソッドのテンプレート
186
208
  #返却値:: 自分自身を返す
187
209
  def render
@@ -394,7 +416,7 @@ module Miyako
394
416
  #各要素のupdate_animationメソッドを呼び出す
395
417
  #返却値:: 描く画像のupdate_spriteメソッドを呼び出した結果を配列で返す
396
418
  def update_animation
397
- self.map{|e| (e.class.include?(SpriteBase) || e.class.include?(SpriteArray)) ? e.update_animation : false }
419
+ self.inject(false){|r, e| r |= (e.class.include?(SpriteBase) || e.class.include?(SpriteArray)) ? e.update_animation : false }
398
420
  end
399
421
 
400
422
  #===指定した要素の内容を入れ替える
@@ -452,6 +474,18 @@ module Miyako
452
474
  def render_xy_to(dst, x, y)
453
475
  return self.each{|e| e.render_xy_to(dst, x, y) if e.class.include?(SpriteBase) || e.class.include?(SpriteArray)}
454
476
  end
477
+
478
+ #===位置を指定して画面への描画を指示するメソッドのテンプレート
479
+ #オブジェクトで保持している位置情報ではなく、引数で渡された位置に描画する
480
+ #基本的に、メソッドのオーバーライドにより機能するが、pos,move_to!メソッドを持っているときは、
481
+ #これらのメソッドを呼び出して同じ動作を行うが処理速度的に課題あり
482
+ #ただし、上記のメソッドを持っていない場合は、単純にrenderメソッドを呼び出す
483
+ #_x_:: 描画位置のx座標
484
+ #_y_:: 描画位置のy座標
485
+ #返却値:: 自分自身を返す
486
+ def render_d(dx, dy)
487
+ return self.each{|e| e.render_d(dx, dy) if e.class.include?(SpriteBase) || e.class.include?(SpriteArray) }
488
+ end
455
489
  end
456
490
 
457
491
  #==ディープコピーを実装するモジュール
@@ -206,9 +206,6 @@ module Miyako
206
206
  ss.snap(self)
207
207
  ss.left!.top!
208
208
  }
209
-
210
- @now.move_to!(@slist[@plist[@pnum]].x + @move_offset[@pnum][0],
211
- @slist[@plist[@pnum]].y + @move_offset[@pnum][1])
212
209
  end
213
210
 
214
211
  #===複写時に呼び出されるメソッド
@@ -479,8 +476,9 @@ module Miyako
479
476
  #visibleメソッドの値がfalseのときは描画されない。
480
477
  def render
481
478
  return self unless @now
482
- pos = @now.move(*@move_offset[@pnum])
483
- @now.render_xy(*pos)
479
+ # pos = @now.move(*@move_offset[@pnum])
480
+ # @now.render_xy(*pos)
481
+ @now.render_d(*@move_offset[@pnum])
484
482
  end
485
483
 
486
484
  #===アニメーションの現在の画像を画像に描画する
@@ -1361,7 +1361,7 @@ module Miyako
1361
1361
  def render_xy(x, y)
1362
1362
  return self.each{|pair|
1363
1363
  obj = pair[1]
1364
- cl = e.class
1364
+ cl = obj.class
1365
1365
  obj.render_xy(x, y) if cl.include?(SpriteBase) || cl.include?(SpriteArray)
1366
1366
  }
1367
1367
  end
@@ -1378,11 +1378,27 @@ module Miyako
1378
1378
  def render_xy_to(dst, x, y)
1379
1379
  return self.each{|pair|
1380
1380
  obj = pair[1]
1381
- cl = e.class
1381
+ cl = obj.class
1382
1382
  obj.render_xy_to(dst, x, y) if cl.include?(SpriteBase) || cl.include?(SpriteArray)
1383
1383
  }
1384
1384
  end
1385
1385
 
1386
+ #===位置を指定して画面への描画を指示するメソッドのテンプレート
1387
+ #オブジェクトで保持している位置情報ではなく、引数で渡された位置に描画する
1388
+ #基本的に、メソッドのオーバーライドにより機能するが、pos,move_to!メソッドを持っているときは、
1389
+ #これらのメソッドを呼び出して同じ動作を行うが処理速度的に課題あり
1390
+ #ただし、上記のメソッドを持っていない場合は、単純にrenderメソッドを呼び出す
1391
+ #_x_:: 描画位置のx座標
1392
+ #_y_:: 描画位置のy座標
1393
+ #返却値:: 自分自身を返す
1394
+ def render_d(dx, dy)
1395
+ return self.each{|e|
1396
+ obj = pair[1]
1397
+ cl = obj.class
1398
+ obj.render_d(dx, dy) if e.class.include?(SpriteBase) || e.class.include?(SpriteArray)
1399
+ }
1400
+ end
1401
+
1386
1402
  #===オブジェクトを文字列に変換する
1387
1403
  #いったん、名前とスプライトとの対の配列に変換し、to_sメソッドで文字列化する。
1388
1404
  #例:[[name1, sprite1], [name2, sprite2],...]
@@ -24,6 +24,28 @@ module Miyako
24
24
  #==位置情報のための構造体クラス
25
25
  #位置変更メソッドを追加
26
26
  class PointStruct < Struct
27
+ def update!(obj)
28
+ self[0] = obj[0]
29
+ self[1] = obj[1]
30
+ self
31
+ end
32
+
33
+ def update_by_point!(obj)
34
+ update!(obj)
35
+ end
36
+
37
+ def update_by_size!(obj)
38
+ self
39
+ end
40
+
41
+ def update_by_rect!(obj)
42
+ update!(obj)
43
+ end
44
+
45
+ def update_by_square!(obj)
46
+ update!(obj)
47
+ end
48
+
27
49
  #===位置を変更する(変化量を指定)
28
50
  #ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
29
51
  #_dx_:: 移動量(x方向)。単位はピクセル
@@ -24,6 +24,38 @@ module Miyako
24
24
  #==矩形情報のための構造体クラス
25
25
  #矩形変更メソッドを追加
26
26
  class RectStruct < Struct
27
+ def update!(obj)
28
+ self[0] = obj[0]
29
+ self[1] = obj[1]
30
+ self[2] = obj[2]
31
+ self[3] = obj[3]
32
+ self
33
+ end
34
+
35
+ def update_by_point!(obj)
36
+ self[0] = obj[0]
37
+ self[1] = obj[1]
38
+ self
39
+ end
40
+
41
+ def update_by_size!(obj)
42
+ self[2] = obj[0]
43
+ self[3] = obj[1]
44
+ self
45
+ end
46
+
47
+ def update_by_rect!(obj)
48
+ update!(obj)
49
+ end
50
+
51
+ def update_by_square!(obj)
52
+ self[0] = obj[0]
53
+ self[1] = obj[1]
54
+ self[2] = obj[2] - self[0] + 1
55
+ self[3] = obj[3] - self[1] + 1
56
+ self
57
+ end
58
+
27
59
  #===位置を変更する(変化量を指定)
28
60
  # ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
29
61
  #_dx_:: 移動量(x方向)。単位はピクセル
@@ -24,6 +24,10 @@ module Miyako
24
24
  #==線分の区間情報のための構造体クラス
25
25
  #位置変更メソッドを追加
26
26
  class SegmentStruct < Struct
27
+ def update!(obj)
28
+ self[0] = obj[0]
29
+ self[1] = obj[1]
30
+ end
27
31
 
28
32
  #===レシーバがotherの範囲内かどうかを求める
29
33
  #最小数・最大数ともにotherの範囲内かどうかを確認する
@@ -24,6 +24,32 @@ module Miyako
24
24
  #==サイズ情報のための構造体クラス
25
25
  #サイズ変更メソッドを追加
26
26
  class SizeStruct < Struct
27
+ def update!(obj)
28
+ self[0] = obj[0]
29
+ self[1] = obj[1]
30
+ self
31
+ end
32
+
33
+ def update_by_point!(obj)
34
+ self
35
+ end
36
+
37
+ def update_by_size!(obj)
38
+ update!(obj)
39
+ end
40
+
41
+ def update_by_rect!(obj)
42
+ self[0] = obj[2]
43
+ self[1] = obj[3]
44
+ self
45
+ end
46
+
47
+ def update_by_square!(obj)
48
+ self[0] = obj[2]-obj[0]+1
49
+ self[1] = obj[3]-obj[1]+1
50
+ self
51
+ end
52
+
27
53
  #===サイズを変更する(変化量を指定)
28
54
  # ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
29
55
  #_dw_:: 幅変更。単位はピクセル
@@ -24,6 +24,42 @@ module Miyako
24
24
  #==Square構造体用クラス
25
25
  #位置変更メソッドを追加
26
26
  class SquareStruct < Struct
27
+ def update!(obj)
28
+ self[0] = obj[0]
29
+ self[1] = obj[1]
30
+ self[2] = obj[2]
31
+ self[3] = obj[3]
32
+ self
33
+ end
34
+
35
+ def update_by_point!(obj)
36
+ w = self[2]-self[0]
37
+ h = self[3]-self[1]
38
+ self[0] = obj[0]
39
+ self[1] = obj[1]
40
+ self[2] = self[0] + w
41
+ self[3] = self[1] + h
42
+ self
43
+ end
44
+
45
+ def update_by_size!(obj)
46
+ self[2] = self[0] + obj[0] - 1
47
+ self[3] = self[1] + obj[1] - 1
48
+ self
49
+ end
50
+
51
+ def update_by_rect!(obj)
52
+ self[0] = obj[0]
53
+ self[1] = obj[1]
54
+ self[2] = self[0] + obj[2] - 1
55
+ self[3] = self[1] + obj[3] - 1
56
+ self
57
+ end
58
+
59
+ def update_by_square!(obj)
60
+ update!(obj)
61
+ end
62
+
27
63
  #===位置を変更する(変化量を指定)
28
64
  # ブロックを渡したとき、ブロックの評価した結果、偽になったときは移動させた値を元に戻す
29
65
  #_dx_:: 移動量(x方向)。単位はピクセル
data/lib/Miyako/miyako.rb CHANGED
@@ -3,13 +3,13 @@
3
3
  #=コンテンツ作成ライブラリMiyako2.1
4
4
  #
5
5
  #Authors:: サイロス誠
6
- #Version:: 2.1.11
6
+ #Version:: 2.1.12
7
7
  #Copyright:: 2007-2010 Cyross Makoto
8
8
  #License:: LGPL2.1
9
9
  #
10
10
  =begin
11
11
  Miyako v2.1
12
- Copyright (C) 2007-2008 Cyross Makoto
12
+ Copyright (C) 2007-2010 Cyross Makoto
13
13
 
14
14
  This library is free software; you can redistribute it and/or
15
15
  modify it under the terms of the GNU Lesser General Public
@@ -63,7 +63,7 @@ Thread.abort_on_exception = true
63
63
 
64
64
  #==Miyako基幹モジュール
65
65
  module Miyako
66
- VERSION = "2.1.11"
66
+ VERSION = "2.1.12"
67
67
 
68
68
  #===アプリケーション実行中に演奏する音楽のサンプリングレートを指定する
69
69
  #単位はHz(周波数)
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-miyako-mswin32
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.11
4
+ version: 2.1.12
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-05-01 00:00:00 +09:00
12
+ date: 2010-05-04 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies: []
15
15