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.
Files changed (91) hide show
  1. data/README +1092 -929
  2. data/Rakefile +7 -7
  3. data/defines.h +144 -144
  4. data/extern.h +29 -29
  5. data/install_miyako.rb +87 -87
  6. data/lib/Miyako/API/audio.rb +572 -198
  7. data/lib/Miyako/API/basic_data.rb +825 -573
  8. data/lib/Miyako/API/bitmap.rb +534 -507
  9. data/lib/Miyako/API/choices.rb +481 -475
  10. data/lib/Miyako/API/collision.rb +486 -460
  11. data/lib/Miyako/API/diagram.rb +586 -561
  12. data/lib/Miyako/API/drawing.rb +151 -151
  13. data/lib/Miyako/API/exceptions.rb +105 -0
  14. data/lib/Miyako/API/fixedmap.rb +462 -428
  15. data/lib/Miyako/API/font.rb +430 -403
  16. data/lib/Miyako/API/input.rb +456 -447
  17. data/lib/Miyako/API/layout.rb +636 -433
  18. data/lib/Miyako/API/map.rb +583 -529
  19. data/lib/Miyako/API/map_event.rb +222 -198
  20. data/lib/Miyako/API/modules.rb +357 -109
  21. data/lib/Miyako/API/movie.rb +166 -154
  22. data/lib/Miyako/API/parts.rb +276 -189
  23. data/lib/Miyako/API/plane.rb +205 -166
  24. data/lib/Miyako/API/screen.rb +341 -325
  25. data/lib/Miyako/API/shape.rb +443 -443
  26. data/lib/Miyako/API/sprite.rb +771 -752
  27. data/lib/Miyako/API/sprite_animation.rb +490 -481
  28. data/lib/Miyako/API/sprite_list.rb +1135 -0
  29. data/lib/Miyako/API/spriteunit.rb +168 -147
  30. data/lib/Miyako/API/story.rb +350 -300
  31. data/lib/Miyako/API/textbox.rb +770 -725
  32. data/lib/Miyako/API/utility.rb +419 -388
  33. data/lib/Miyako/API/viewport.rb +189 -139
  34. data/lib/Miyako/API/yuki.rb +1226 -996
  35. data/lib/Miyako/EXT/miyako_cairo.rb +62 -62
  36. data/lib/Miyako/EXT/raster_scroll.rb +138 -138
  37. data/lib/Miyako/EXT/slides.rb +157 -157
  38. data/lib/Miyako/miyako.rb +201 -171
  39. data/lib/Miyako/miyako_require_only.rb +35 -0
  40. data/miyako_basicdata.c +590 -590
  41. data/miyako_bitmap.c +1225 -1225
  42. data/miyako_collision.c +403 -403
  43. data/miyako_drawing.c +187 -187
  44. data/miyako_font.c +334 -334
  45. data/miyako_hsv.c +830 -830
  46. data/miyako_input_audio.c +254 -0
  47. data/miyako_layout.c +191 -191
  48. data/miyako_no_katana.c +1078 -1074
  49. data/miyako_sprite2.c +431 -0
  50. data/miyako_transform.c +438 -438
  51. data/miyako_utility.c +288 -288
  52. data/sample/Animation1/m1ku.rb +68 -68
  53. data/sample/Animation2/lex.rb +96 -96
  54. data/sample/Diagram_sample/diagram_sample_yuki2.rb +328 -386
  55. data/sample/Room3/blue.rb +297 -297
  56. data/sample/Room3/ending.rb +180 -180
  57. data/sample/Room3/green.rb +220 -220
  58. data/sample/Room3/main.rb +119 -119
  59. data/sample/Room3/main_component.rb +59 -59
  60. data/sample/Room3/red.rb +227 -227
  61. data/sample/Room3/room3.rb +25 -27
  62. data/sample/Room3/title.rb +184 -184
  63. data/sample/ball_action_sample.rb +204 -204
  64. data/sample/blit_rop.rb +70 -70
  65. data/sample/cairo_sample.rb +25 -25
  66. data/sample/circle_collision_test.rb +66 -66
  67. data/sample/collision_test.rb +33 -33
  68. data/sample/collision_test2.rb +108 -108
  69. data/sample/fixed_map_test/fixed_map_sample.rb +140 -140
  70. data/sample/fixed_map_test/readme.txt +72 -72
  71. data/sample/map_test/chara.rb +58 -58
  72. data/sample/map_test/main_parts.rb +69 -69
  73. data/sample/map_test/main_scene.rb +153 -153
  74. data/sample/map_test/map_manager.rb +75 -75
  75. data/sample/map_test/map_test.rb +23 -23
  76. data/sample/map_test/oasis.rb +71 -71
  77. data/sample/map_test/readme.txt +89 -89
  78. data/sample/map_test/route.rb +157 -157
  79. data/sample/map_test/town.rb +74 -74
  80. data/sample/polygon_test.rb +35 -35
  81. data/sample/rasterscroll.rb +24 -24
  82. data/sample/takahashi.rb +42 -42
  83. data/sample/textbox_sample.rb +189 -189
  84. data/sample/transform.rb +54 -54
  85. data/sample/utility_test.rb +73 -73
  86. data/sample/utility_test2.rb +61 -61
  87. data/sample/utility_test3.rb +64 -64
  88. data/sample/utility_test4.rb +73 -73
  89. data/uninstall_miyako.rb +19 -19
  90. data/win/miyako_no_katana.so +0 -0
  91. metadata +7 -2
@@ -1,147 +1,168 @@
1
- # -*- encoding: utf-8 -*-
2
- =begin
3
- --
4
- Miyako v2.0
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
- #SpriteUnit対応
68
- #ダックタイピング用のメソッド
69
- #得られるインスタンスは複写していないので、インスタンスの値を調整するには、dupメソッドで複製する必要がある
70
- #返却値:: 自分自身
71
- def to_unit
72
- return self
73
- end
74
-
75
- #===スプライトを生成して返す
76
- #ダックタイピング用のメソッド
77
- #所持しているSpriteUnitから、Spriteクラスのインスタンスを生成する
78
- #但し、bitmapの設定は:type=>:alpha_channelのみ
79
- #引数1個のブロックを渡せば、スプライトに補正をかけることが出来る
80
- #返却値:: 生成したスプライト
81
- def to_sprite
82
- sprite = Sprite.new(:unit=>self, :type=>:ac)
83
- yield sprite if block_given?
84
- return sprite
85
- end
86
-
87
- #===画像の表示矩形を取得する
88
- #画像が表示されているときの矩形を取得する。矩形は、[x,y,ow,oh]で取得する。
89
- #返却値:: 生成された矩形
90
- def rect
91
- return Rect.new(self.x, self.y, self.ow, self.oh)
92
- end
93
-
94
- #===現在の画面の最大の大きさを矩形で取得する
95
- #但し、SpriteUnitの場合は最大の大きさ=画像の大きさなので、rectと同じ値が得られる
96
- #返却値:: 画像の大きさ(Rect構造体のインスタンス)
97
- def broad_rect
98
- return self.rect
99
- end
100
- end
101
-
102
- #==スプライト出力情報構造体
103
- #基本的なことは、Sprite.renderで行うことが出来るが、凝った処理を行う場合は、SpriteUnitを使う
104
- #--
105
- #SpriteUnit = Struct.new([:dp], :bitmap, :ox, :oy, :ow, :oh, :x, :y, :cx, :cy)
106
- #++
107
- #([数字])は、配列として認識したときのインデックス番号に対応(Struct#[]メソッドを呼び出した時のインデックス)
108
- #:bitmap([0]) -> 画像データ(SDL::Surfaceクラスのインスタンス)
109
- #:ox([1]) -> 描画開始位置(x方向)
110
- #:oy([2]) -> 描画開始位置(y方向)
111
- #:ow([3]) -> 描画幅
112
- #:oh([4]) -> 描画高さ
113
- #:x([5]) -> 描画幅
114
- #:y([6]) -> 描画高さ
115
- #:cx([7]) -> 回転・拡大・縮小・鏡像の中心座標(x方向)
116
- #:cy([8]) -> 回転・拡大・縮小・鏡像の中心座標(y方向)
117
- SpriteUnit = SpriteUnitBase.new(:bitmap, :ox, :oy, :ow, :oh, :x, :y, :cx, :cy)
118
-
119
- #==SpriteUnit生成ファクトリクラス
120
- #SpriteUnit構造体のインスタンスを生成するためのクラス
121
- class SpriteUnitFactory
122
- PARAMS = [:bitmap, :ox, :oy, :ow, :oh, :x, :y, :cx, :cy]
123
- #==SpriteUnitのインスタンスを生成する
124
- #params: 初期化するSpriteUnit構造体の値。ハッシュ引数。引数のキーは、SpriteUnitのアクセサ名と同一。省略可能
125
- def SpriteUnitFactory.create(params = nil)
126
- unit = SpriteUnit.new(nil, 0, 0, 0, 0, 0, 0, 0, 0)
127
- return SpriteUnitFactory.apply(unit, params)
128
- end
129
-
130
- #==SpriteUnitの各アクセサに対応した値を設定する
131
- #()bitmapアクセサに値を設定する場合、ox,oy,ow,ohの値が自動的に、
132
- #bitmapに対応する値(ox=0,oy=0,ow=bitmap.w,oh=bitmap.h)が設定される
133
- #unit: 設定対象のSpriteUnit構造体
134
- #params: 設定するSpriteUnit構造体の値。ハッシュ引数。引数のキーは、SpriteUnitのアクセサ名と同一
135
- def SpriteUnitFactory.apply(unit, params)
136
- if params && params.has_key?(:bitmap)
137
- unit.bitmap = params[:bitmap]
138
- unit.ox = 0
139
- unit.oy = 0
140
- unit.ow = unit.bitmap.w
141
- unit.oh = unit.bitmap.h
142
- end
143
- PARAMS.each{|prm| unit[prm] = params[prm] if params.has_key?(prm) } if params
144
- return unit
145
- end
146
- end
147
- end
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