ruby-miyako 2.1.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. data/README +275 -20
  2. data/extern.h +21 -1
  3. data/install_miyako.rb +5 -3
  4. data/lib/Miyako/API/audio.rb +11 -6
  5. data/lib/Miyako/API/basic_data.rb +0 -985
  6. data/lib/Miyako/API/bitmap.rb +19 -22
  7. data/lib/Miyako/API/choices.rb +203 -69
  8. data/lib/Miyako/API/collision.rb +451 -9
  9. data/lib/Miyako/API/color.rb +177 -0
  10. data/lib/Miyako/API/diagram.rb +18 -20
  11. data/lib/Miyako/API/fixedmap.rb +207 -73
  12. data/lib/Miyako/API/font.rb +111 -18
  13. data/lib/Miyako/API/i_yuki.rb +1201 -0
  14. data/lib/Miyako/API/input.rb +65 -0
  15. data/lib/Miyako/API/layout.rb +41 -29
  16. data/lib/Miyako/API/map.rb +202 -157
  17. data/lib/Miyako/API/map_event.rb +86 -19
  18. data/lib/Miyako/API/map_struct.rb +268 -0
  19. data/lib/Miyako/API/modules.rb +136 -37
  20. data/lib/Miyako/API/movie.rb +8 -8
  21. data/lib/Miyako/API/parts.rb +63 -20
  22. data/lib/Miyako/API/plane.rb +4 -4
  23. data/lib/Miyako/API/screen.rb +16 -8
  24. data/lib/Miyako/API/sprite.rb +290 -23
  25. data/lib/Miyako/API/sprite_animation.rb +23 -11
  26. data/lib/Miyako/API/sprite_list.rb +406 -183
  27. data/lib/Miyako/API/story.rb +4 -65
  28. data/lib/Miyako/API/struct_point.rb +157 -0
  29. data/lib/Miyako/API/struct_rect.rb +233 -0
  30. data/lib/Miyako/API/struct_segment.rb +641 -0
  31. data/lib/Miyako/API/struct_size.rb +158 -0
  32. data/lib/Miyako/API/struct_square.rb +253 -0
  33. data/lib/Miyako/API/textbox.rb +49 -35
  34. data/lib/Miyako/API/viewport.rb +5 -5
  35. data/lib/Miyako/API/wait_counter.rb +350 -0
  36. data/lib/Miyako/API/yuki.rb +95 -60
  37. data/lib/Miyako/EXT/raster_scroll.rb +30 -8
  38. data/lib/Miyako/EXT/slides.rb +6 -6
  39. data/lib/Miyako/miyako.rb +25 -11
  40. data/lib/miyako.rb +28 -0
  41. data/lib/miyako_require_only.rb +35 -0
  42. data/miyako_basicdata.c +201 -17
  43. data/miyako_collision.c +315 -6
  44. data/miyako_diagram.c +331 -0
  45. data/miyako_drawing.c +26 -7
  46. data/miyako_font.c +259 -129
  47. data/miyako_input_audio.c +24 -14
  48. data/miyako_layout.c +106 -8
  49. data/miyako_no_katana.c +398 -171
  50. data/miyako_sprite2.c +275 -38
  51. data/miyako_transform.c +113 -107
  52. data/miyako_utility.c +34 -48
  53. data/miyako_yuki.c +241 -0
  54. data/sample/Diagram_sample/diagram_sample_yuki2.rb +30 -30
  55. data/sample/Room3/blue.rb +19 -19
  56. data/sample/Room3/green.rb +9 -9
  57. data/sample/Room3/main.rb +12 -12
  58. data/sample/Room3/red.rb +12 -12
  59. data/sample/Room3/title.rb +15 -10
  60. data/sample/collision_test2.rb +2 -1
  61. data/sample/fixed_map_test/fixed_map_sample.rb +7 -6
  62. data/sample/map_test/main_scene.rb +12 -10
  63. data/sample/map_test/map_manager.rb +14 -13
  64. data/sample/rasterscroll.rb +5 -5
  65. data/sample/takahashi.rb +3 -3
  66. data/sample/textbox_sample.rb +7 -6
  67. data/sample/transform.rb +2 -1
  68. data/uninstall_miyako.rb +4 -1
  69. data/win/miyako_no_katana.so +0 -0
  70. metadata +15 -4
  71. data/lib/Miyako/EXT/miyako_cairo.rb +0 -62
  72. data/sample/cairo_sample.rb +0 -25
data/README CHANGED
@@ -1,8 +1,8 @@
1
1
  *******************************************************************************
2
2
  【 作者名 】 サイロス誠
3
3
  【 ソフト名 】 Interactive Media Authoring System "Miyako"
4
- 【 バージョン 】 2.1.0
5
- 【 作成日 】 2009/7/9
4
+ 【 バージョン 】 2.1.1
5
+ 【 作成日 】 2009/10/16
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.0公式リリース版です。
18
+ 本バージョンは、2.1.1公式リリース版です。
19
19
  本バージョンでは、ドキュメント・リファレンスは不十分ですが、「サイログ。」内や、サンプルプログラムの紹介等で随時ドキュメントを公開して行きます。
20
20
  (RDOC化を進めていますので、我こそはと思う方は是非・・・)
21
21
 
@@ -23,8 +23,6 @@
23
23
  http://www.twin.ne.jp/~cyross/Miyako/
24
24
  (日記)
25
25
  http://d.hatena.ne.jp/cyross/
26
- (Wiki)
27
- http://wiki.fdiary.net/MiyakoDevSrc/
28
26
 
29
27
  【 はじめに 】
30
28
 
@@ -229,7 +227,7 @@ Windowsでは、Ruby/SDLバイナリパッケージの使用をお奨めしま
229
227
 
230
228
  まず、Miyakoを使用したいRubyスクリプトにmiyako.rbをrequireしてください。
231
229
 
232
- require 'Miyako/miyako'
230
+ require 'miyako'
233
231
 
234
232
  これで、Miyakoの機能を利用できます。
235
233
 
@@ -244,7 +242,6 @@ require 'Miyako/EXT/利用したいライブラリ名'
244
242
 
245
243
  1.RasterScrollクラス(ラスタスクロールを管理するクラス) : EXT/raster_scroll
246
244
  2.Slideモジュール(スライド生成・管理を行えるモジュール) : EXT/slides
247
- 3.MiyakoCairoモジュール(MiyakoのスプライトとCairoのImageSurfaceを簡単に相互変換できるモジュール) : EXT/miyako_cairo
248
245
 
249
246
  各種機能につきましては、リファレンスマニュアルをご参照ください。
250
247
 
@@ -926,16 +923,24 @@ v2.0.5(2009.4.26)
926
923
  v2.0.5.1(2009.4.26)
927
924
  ・アンインストールスクリプト(uninstall_miyako.rb)追加
928
925
 
929
- v2.1.0(2009.7.9)
926
+ v2.1.0(2009.10.9)
930
927
  <バグ修正>
931
928
  ・Parts#removeメソッドで削除していないオブジェクトがあったため問題を修正
932
929
  ・同時再生数を超えて効果音を再生するとプログラムが落ちる問題を修正
933
930
  ・各種オブジェクトが正しく複製されない問題を修正
934
931
   (ただし、Audio::BGM,Audio::SEは、内部データを複製すると落ちるため、複製していない)
932
+ ・Sprite#show/hideが機能していなかったバグを修正
935
933
  ・Yuki#select_plotで渡したプロットの引数チェックを行っていなかったバグを修正
936
934
  ・Alt+Enterを押してもフルスクリーンにならないバグを修正
935
+ ・Collision.collisionが正しく値を返さないバグを修正
936
+ ・FixedMapクラスでpos,sizeメソッドの値がレイアウトの位置になっていなかった問題を修正
937
+ ・MapEventモジュールのmove,move_toメソッドで存在しない構造体を生成していた問題を修正
938
+ ・Color.[]で、勝手に透明度部分が書き換わる問題を修正
939
+ ・Choices#broad_rectで、大きさを正しく取得できない問題を修正
937
940
  <仕様変更>
941
+ ・"require 'miyako'"でもロード可能
938
942
  ・miyako.rbで組み込んでいるライブラリの順番を変更
943
+ ・標準のウインドウモードをフルスクリーンモードに変更
939
944
  ・$miyako_auto_openグローバル変数により、強制的な画面のオープンを解除
940
945
   必要な部分だけ呼び出し(Miyako.init,Audio.init,Screen.init,Font.init)
941
946
   (Miyako.open/Screen.open呼び出し前のSprite作成不可)
@@ -960,6 +965,7 @@ v2.1.0(2009.7.9)
960
965
  ・PlaneクラスにSpriteBase,Animationモジュールをmixin
961
966
  ・ViewportクラスにSpriteBase,Animationモジュールをmixin
962
967
  ・YukiクラスにSpriteBase,Animationモジュールをmixin
968
+ ・回数を指定した音声の繰り返し演奏に対応
963
969
  ・Audio::BGM,Audio::SEクラスのインスタンスを複写しようとすると例外発生するように変更
964
970
  ・Audio::BGM.newメソッドの引数インタフェースを変更
965
971
  ・Audio::BGM.newメソッドの処理内容を変更
@@ -995,12 +1001,54 @@ v2.1.0(2009.7.9)
995
1001
  ・Segments#reset->reset!に変更
996
1002
  ・Viewport#viewportメソッドの返却値を変更
997
1003
  ・PartsクラスをSpriteListクラス基準に変更
1004
+ ・Sprite#newでdisplay_format_alphaによる画像の複製を行わず、Bitmap.create、Bitmap.loadで行うようにした
1005
+  (Bitmapを渡すことによる画像の共有化が可能に)
1006
+ ・Sprite#newの引数を追加(:fill,:alpha)
1007
+ ・Sprite#newの:typeハッシュ引数の既定値を:color_key(:ck)から:alpha_channel(:ac)に変更
1008
+ ・Miyako.main_loopを再び高速化
1009
+ ・Story#runの内部ループをloop do~からMiyako.main_loop~に変更
1010
+ ・Map.new、FixedMap.newのインタフェースを変更(CSVファイル以外からのマップデータ生成を容易に)
1011
+ ・MapEventManager#include?メソッドで、マップに登録されていないときも例外を発せしないように変更
1012
+ ・OverSceneを廃止
1013
+ ・Screen.pre_render_array、Screen.auto_render_arrayを配列からSpriteListに変更
1014
+ ・Fiberを使用しないYuki、InitiatieYukiクラスを追加
1015
+ ・SpriteBase.#render,render_to、Bitmapクラスの各種画像効果メソッドでのブロックの使用を廃止
1016
+ ・MapLayer#collision?,meet?,cover?,can_accessメソッドの引数を追加(ignores引数)
1017
+ ・FixedMapLayer#collision?,meet?,cover?,can_accessメソッドの引数を追加(ignores引数)
1018
+ ・MapEvent#.move!,move_to!,move,move_toの後ろに可変引数を追加(移動時の細かい設定)
1019
+ ・Map.new、FixedMap.newで、イベントが無いときでも0番レイヤーを生成するように変更
1020
+ ・マウス、キーボード、ゲームパッドの利用選択が可能に(enable、disableの設定が可能に)
1021
+ ・FontクラスにSpriteBase、Animastion、Layoutモジュールをmixin、スプライトとして扱うことが可能に
1022
+ ・WaitCounter#remind(->remainにalias)の返却値の仕様を変更(未スタート:制限時間->制限時間+1、制限時間オーバー:0->-1)
1023
+ ・WaitCounter.updateを追加。簡易的なコールバック処理が可能に
1024
+ ・選択肢の状態に「選択不可時」を追加(Choice構造体にenable, body_disableを追加)
1025
+ ・Choice構造体をスプライト扱いに変更(SpriteBase,Animation,Layoutをmixin)
1026
+ ・Choice構造体に名前を付けられるようになった。Choices#[]メソッドでも参照可
1027
+ ・Choicesクラスにレイアウト空間(LayoutSpace)を登録できるハッシュを追加した
1028
+ ・Choices.newメソッドの引数インタフェースを変更(ただし、既存の処理に影響しない)
1029
+ ・Miyako.main_loopの引数インタフェース変更(ただし、既存の処理に影響しない)
1030
+ ・Windows版1.9でのrcairoが簡単に使えるようになるまで、MiyakoCairoクラスの添付を配布を中止します
998
1031
  <ファイル追加>
999
1032
  ・miyako_sprite2.c
1000
1033
  ・miyako_input_audio.c
1034
+ ・miyako_diagram.c
1035
+ ・miyako_yuki.c
1001
1036
  ・lib/Miyako/miyako_require_only.rb
1037
+ ・lib/miyako.rb
1038
+ ・lib/miyako_require_only.rb
1039
+ ・lib/Miyako/API/color.rb
1002
1040
  ・lib/Miyako/API/exceptions.rb
1041
+ ・lib/Miyako/API/i_yuki.rb
1003
1042
  ・lib/Miyako/API/sprite_list.rb
1043
+ ・lib/Miyako/API/struct_point.rb
1044
+ ・lib/Miyako/API/struct_size.rb
1045
+ ・lib/Miyako/API/struct_rect.rb
1046
+ ・lib/Miyako/API/struct_square.rb
1047
+ ・lib/Miyako/API/struct_segment.rb
1048
+ ・lib/Miyako/API/wait_counter.rb
1049
+ <ファイル削除>
1050
+ ・lib/Miyako/EXT/miyako_cairo.rb
1051
+ ・sample/cairo_sample.rb
1004
1052
  <グローバル変数追加>
1005
1053
  ・$miyako_auto_open(require時に、同時に画面などの初期化を行うかどうかのフラグ)
1006
1054
  <定数追加>
@@ -1009,9 +1057,17 @@ v2.1.0(2009.7.9)
1009
1057
  ・Screen::BPP
1010
1058
  <構造体追加>
1011
1059
  ・ListPair
1060
+ ・MapStruct
1012
1061
  ・ScenePool
1013
1062
  <クラス追加>
1063
+ ・ChoiceStruct
1064
+ ・CollisionEx
1065
+ ・CircleCollisionEx
1066
+ ・CollisionsEx
1067
+ ・InitiativeYuki
1014
1068
  ・ListPairStruct
1069
+ ・MapStructStruct
1070
+ ・MapStructFactory
1015
1071
  ・MiyakoCopyError
1016
1072
  ・MiyakoFileFormatError
1017
1073
  ・MiyakoIOError
@@ -1020,60 +1076,200 @@ v2.1.0(2009.7.9)
1020
1076
  ・MiyakoValueError
1021
1077
  ・Segments
1022
1078
  ・SpriteList
1079
+ ・MapDir(AccessIndexから変更)
1023
1080
  <モジュール追加>
1024
1081
  ・DeepCopy
1082
+ ・InitiativeYukiTemplate
1025
1083
  ・SpriteArray
1026
1084
  <mixin>
1027
1085
  ・ArrayクラスにSpriteArrayモジュールをmixin
1028
1086
  ・ObjectクラスにDeepCopyモジュールをmixin
1029
1087
  <クラス・モジュールメソッド追加>
1088
+ ・Animation.[]
1089
+ ・Animation.[]=
1090
+ ・Animation.anim_hash
1091
+ ・Animation.reset
1092
+ ・Animation.start
1093
+ ・Animation.stop
1094
+ ・Animation.update
1095
+ ・Animation.update_animation
1030
1096
  ・Audio.init
1031
1097
  ・Audio.initialized?
1032
1098
  ・Audio.update
1033
1099
  ・Audio::BGM.update
1100
+ ・Audio::SE.channels
1034
1101
  ・Audio::SE.update
1035
1102
  ・Audio::SE.playing_any?
1036
1103
  ・Audio::SE.channels
1104
+ ・CircleCollision.covers?
1105
+ ・CircleCollision.covered?
1106
+ ・Collision.covers?
1107
+ ・Collision.covered?
1108
+ ・Input.init
1109
+ ・Input.keyboard_enable
1110
+ ・Input.keyboard_disable
1111
+ ・Input.keyboard_enable?
1112
+ ・Input.joypad_enable
1113
+ ・Input.joypad_disable
1114
+ ・Input.joypad_enable?
1115
+ ・Input.mouse_enable
1116
+ ・Input.mouse_disable
1117
+ ・Input.mouse_enable?
1037
1118
  ・Input.init
1038
- ・Layout.copy_layout
1119
+ ・Layout#.copy_layout
1120
+ ・Layout#.broad_rect
1039
1121
  ・Font.init
1040
1122
  ・Font.initialized?
1123
+ ・MapChipFactory.create
1124
+ ・MapChipFactory.create_with_size
1125
+ ・MapChipFactory.all_access_table
1126
+ ・MapChipFactory.not_access_table
1127
+ ・MapStructFactory.create
1128
+ ・MapStructFactory.undefined_layer
1041
1129
  ・Miyako.init
1042
1130
  ・Miyako.initialized?
1043
1131
  ・Miyako.open
1044
1132
  ・Screen.init
1045
1133
  ・Screen.initialized?
1134
+ ・Screen.pos
1135
+ ・Sprite.sprites
1136
+ ・Sprite.[]
1137
+ ・Sprite.[]=
1138
+ ・SpriteBase#.ow
1139
+ ・SpriteBase#.oh
1140
+ ・SpriteBase#.part_rect
1141
+ ・SpriteBase#.image_size
1142
+ ・SpriteBase#.image_rect
1046
1143
  ・Utility.interval
1047
1144
  ・Utility.theta
1048
1145
  ・Yuki.add_method
1146
+ ・WaitCounter.callbacks
1147
+ ・WaitCounter.post_callbacks
1148
+ ・WaitCounter.tick
1149
+ ・WaitCounter.ticks
1150
+ ・WaitCounter.update
1151
+ ・WaitCounter.post_update
1152
+ <クラス・モジュールメソッド廃止>
1153
+ ・Layout#.ow
1154
+ ・Layout#.oh
1155
+ ・SpriteBase#.broad_rect
1049
1156
  <インスタンスメソッド追加>
1050
- Collision.covers?
1051
- Collision.covered?
1052
- Collision#covers?
1053
- Collision#covered?
1054
- CircleCollision.covers?
1055
- CircleCollision.covered?
1157
+ Choise#body_disable
1158
+ Choise#enable
1159
+ Choice#broad_rect
1160
+ Choice#update_layout_size
1161
+ Choice#name
1162
+ Choices#enable?
1163
+ ・Choices#choices
1164
+ ・Choices#update_layout_size
1165
+ ・Choices#name_to_choice
1166
+ ・Choices#layout_spaces
1167
+ ・Choices#regist_layout_space
1168
+ ・CircleCollision#to_ex
1056
1169
  ・CircleCollision#covers?
1057
1170
  ・CircleCollision#covered?
1171
+ ・CircleCollision#body
1172
+ ・CircleCollision#body=
1173
+ ・CircleCollision#rect
1174
+ ・Collision#to_ex
1175
+ ・Collision#covers?
1176
+ ・Collision#covered?
1177
+ ・Collision#body
1178
+ ・Collision#body=
1179
+ ・Collision#center
1180
+ ・Collision#radius
1058
1181
  ・Collisions#covers?
1059
1182
  ・Collisions#covered?
1060
1183
  ・Collisions#covers_all?
1061
1184
  ・Collisions#covered_all?
1062
- Layout#include_snap_child?
1185
+ FixedMap#map_size(size -> map_size)
1186
+ ・FixedMap#map_w(w -> map_w)
1187
+ ・FixedMap#map_h(h -> map_h)
1188
+ ・FixedMap#append_event
1189
+ ・FixedMap#event_update
1190
+ ・FixedMap#all_event_update
1191
+ ・FixedMap#event_update2
1192
+ ・FixedMap#all_event_update2
1193
+ ・FixedMap#event_move!
1194
+ ・FixedMap#all_event_move!
1195
+ ・FixedMap#event_sprite_move!
1196
+ ・FixedMap#all_event_sprite_move!
1197
+ ・FixedMap#event_pos_move!
1198
+ ・FixedMap#all_event_pos_move!
1199
+ ・FiexedMapLayer#ignore_list
1200
+ ・FiexedMapLayer#layer
1201
+ ・Font#text
1202
+ ・Font#text=
1203
+ ・Font#render_xy
1204
+ ・Font#render_xy_to
1205
+ ・Font#render_str
1206
+ ・Font#render_str_to
1207
+ ・Layout#.include_snap_child?
1208
+ ・Layout#.laout_pos
1209
+ ・Layout#.laout_size
1210
+ ・Layout#.relative_move_to
1211
+ ・Layout#.relative_move_to!
1212
+ ・Map#map_size(alias size)
1213
+ ・Map#map_w(alias w)
1214
+ ・Map#map_h(alias h)
1215
+ ・Map#append_event
1216
+ ・Map#event_update
1217
+ ・Map#all_event_update
1218
+ ・Map#event_update2
1219
+ ・Map#all_event_update2
1220
+ ・Map#event_move!
1221
+ ・Map#all_event_move!
1222
+ ・Map#event_sprite_move!
1223
+ ・Map#all_event_sprite_move!
1224
+ ・Map#event_pos_move!
1225
+ ・Map#all_event_pos_move!
1226
+ ・MapEventManager#[]
1227
+ ・MapEventManager#to_id
1228
+ ・MapLayer#ignore_list
1229
+ ・MapLayer#layer
1230
+ ・MapEvent#.update2
1231
+ ・MapEvent#.sprite_move!
1232
+ ・MapEvent#.sprite_move_to!
1233
+ ・MapEvent#.pos_move!
1234
+ ・MapEvent#.pos_move_to!
1063
1235
  ・Scene#story
1064
1236
  ・Scene#prev_scene
1065
1237
  ・Scene#now_scene
1238
+ ・Sprite#render_xy
1239
+ ・Sprite#render_xy_to
1240
+ ・Sprite#collision
1241
+ ・Sprite#collision=
1242
+ ・Sprite#part_move!
1243
+ ・Sprite#part_move_to!
1244
+ ・Sprite#part_resize!
1245
+ ・Sprite#part_resize_to!
1246
+ ・Sprite#part_move
1247
+ ・Sprite#part_move_to
1248
+ ・Sprite#part_resize
1249
+ ・Sprite#part_resize_to
1250
+ ・SpriteAnimation#characters
1251
+ ・SpriteAnimation#patterns
1066
1252
  ・SpriteBase#render_to
1067
1253
  ・SpriteBase#visible
1068
1254
  ・SpriteBase#visible=
1069
1255
  ・SpriteBase#show
1070
1256
  ・SpriteBase#hide
1257
+ ・SpriteBase#render_xy
1258
+ ・SpriteBase#render_xy_to
1259
+ ・Textbox#enable_choice?
1260
+ ・Yuki#add_method
1071
1261
  ・Yuki#over_exec
1072
1262
  ・Yuki#wait_over_exec
1073
1263
  ・Yuki#vars_names
1074
1264
  ・Yuki#parts_names
1075
1265
  ・Yuki#render_to
1076
1266
  ・Yuki#update_animation
1267
+ ・Yuki#process
1268
+ ・Yuki#on_disable
1269
+ ・Yuki::Command#body_disable
1270
+ ・Yuki::Command#enable
1271
+ ・Yuki::CommandEx#body_disable
1272
+ ・Yuki::CommandEx#enable
1077
1273
  ・Audio::BGM#loop_count
1078
1274
  ・Audio::BGM#in_the_loop?
1079
1275
  ・Audio::BGM#loop_count_up
@@ -1093,23 +1289,82 @@ v2.1.0(2009.7.9)
1093
1289
  ・Plane::update_animation
1094
1290
  ・Parts#parts_move!
1095
1291
  ・Parts#parts_move_to!
1292
+ ・Point#+
1293
+ ・Point#-
1294
+ ・Point#*
1295
+ ・Point#/
1296
+ ・Size#+
1297
+ ・Size#-
1298
+ ・Size#*
1299
+ ・Size#/
1300
+ ・Rect#between?
1096
1301
  ・Rect#pos
1097
1302
  ・Rect#size
1303
+ ・Rect#to_square
1304
+ ・Rect#+
1305
+ ・Rect#-
1306
+ ・Rect#*
1307
+ ・Rect#/
1098
1308
  ・Scene#upper_scene
1099
1309
  ・Scene#next_scene
1100
1310
  ・Segment#x
1101
1311
  ・Segment#y
1102
- ・Segment#min_x
1103
- ・Segment#max_x
1104
- ・Segment#min_y
1105
- ・Segment#max_y
1312
+ ・Segment#min?
1313
+ ・Segment#max?
1314
+ ・Segment#in_range?
1315
+ ・Segment#between?
1316
+ ・Segment#+
1317
+ ・Segment#-
1318
+ ・Segment#*
1319
+ ・Segment#/
1320
+ ・Square#between?
1106
1321
  ・Square#pos
1107
1322
  ・Square#size
1323
+ ・Square#to_rect
1324
+ ・Square#+
1325
+ ・Square#-
1326
+ ・Square#*
1327
+ ・Square#/
1328
+ ・WaitCounter#append_callback
1329
+ ・WaitCounter#append_post_callback
1330
+ ・WaitCounter#remove_callback
1331
+ ・WaitCounter#remove_post_callback
1332
+ ・WaitCounter#callback_calls
1333
+ ・WaitCounter#callback_count
1334
+ ・WaitCounter#call
1335
+ ・WaitCounter#now
1336
+ ・WaitCounter#remain
1337
+ ・WaitCounter#reset
1338
+ ・WaitCounter#resume
1339
+ ・WaitCounter#size
1108
1340
  <インスタンスメソッド廃止>
1109
1341
  ・Segments#min_x
1110
1342
  ・Segments#min_y
1111
1343
  ・Segments#max_x
1112
1344
  ・Segments#max_y
1113
1345
 
1346
+ v2.1.0.1(2009.10.16)
1347
+ <バグ修正>
1348
+ ・InitiativeYuki#commandメソッドで、選択不可の選択肢を選んだときにメソッド処理が終了するバグを修正
1349
+ ・Font#draw_textメソッドで、文字を転送先画像の外で描画するとSEGVを起こす問題を修正
1350
+ ・WaitCounter.updateメソッドで、コールバックブロック内で呼び出し回数などを変更しても実行に影響しない問題を修正
1351
+ <機能改善>
1352
+ ・Font#draw_textメソッドで、転送先画像が画面のときは、直接SDL_FreeSurface関数を使って、描画する方式に変更
1353
+ <仕様変更>
1354
+ <ファイル追加>
1355
+ <ファイル削除>
1356
+ <グローバル変数追加>
1357
+ <定数追加>
1358
+ <定数削除>
1359
+ <構造体追加>
1360
+ <クラス追加>
1361
+ <モジュール追加>
1362
+ <mixin>
1363
+ <クラス・モジュールメソッド追加>
1364
+ <クラス・モジュールメソッド廃止>
1365
+ <インスタンスメソッド追加>
1366
+ ・WaitCounter#stop_callback_inner
1367
+ <インスタンスメソッド廃止>
1368
+
1114
1369
  *******************************************************************************
1115
1370
  このReadMeファイルは「れ~どめ~えじた~」によって作成されました。
data/extern.h CHANGED
@@ -20,10 +20,30 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
20
  */
21
21
 
22
22
  extern void _miyako_setup_unit(VALUE unit, SDL_Surface *screen, MiyakoBitmap *mb, VALUE x, VALUE y, int use_yield);
23
- extern void _miyako_setup_unit_2(VALUE unit_s, VALUE unit_d,
23
+ extern void _miyako_setup_unit_2(VALUE unit_s, VALUE unit_d,
24
24
  SDL_Surface *screen,
25
25
  MiyakoBitmap *mb_s, MiyakoBitmap *mb_d,
26
26
  VALUE x, VALUE y, int use_yield);
27
27
  extern int _miyako_init_rect(MiyakoBitmap *src, MiyakoBitmap *dst, MiyakoSize *size);
28
28
  extern void _miyako_yield_unit_1(MiyakoBitmap *src);
29
29
  extern void _miyako_yield_unit_2(MiyakoBitmap *src, MiyakoBitmap *dst);
30
+ extern void _miyako_audio_update();
31
+ extern void _miyako_input_update();
32
+ extern void _miyako_counter_update();
33
+ extern void _miyako_counter_post_update();
34
+ extern void _miyako_screen_render();
35
+ extern void _miyako_screen_pre_render();
36
+ extern void _miyako_screen_render_screen();
37
+ extern void _miyako_screen_update_tick();
38
+ extern void _miyako_sprite_list_render(VALUE splist);
39
+ extern void _miyako_sprite_list_render_to(VALUE splist, VALUE dst);
40
+ extern void _miyako_sprite_list_update_animation(VALUE splist);
41
+ extern void _miyako_screen_clear();
42
+ extern VALUE _miyako_layout_pos(VALUE self);
43
+ extern VALUE _miyako_layout_size(VALUE self);
44
+ extern VALUE _miyako_layout_x(VALUE self);
45
+ extern VALUE _miyako_layout_y(VALUE self);
46
+ extern VALUE _miyako_layout_move(VALUE self, VALUE dx, VALUE dy);
47
+ extern VALUE _miyako_layout_move_to(VALUE self, VALUE x, VALUE y);
48
+ extern VALUE _miyako_sprite_render(VALUE sprite);
49
+ extern VALUE _miyako_sprite_render_xy(VALUE sprite, VALUE x, VALUE y);
data/install_miyako.rb CHANGED
@@ -38,20 +38,21 @@ osn = Config::CONFIG["target_os"].downcase
38
38
  if osn =~ /mswin|mingw|cygwin|bccwin/
39
39
  ext_dir = "win/"
40
40
  elsif osn =~ /darwin/ # Mac OS X
41
- if ENV['SDL_CONFIG_PATH']
41
+ if ENV['SDL_CONFIG_PATH']
42
42
  system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='#{ENV['SDL_CONFIG_PATH']}'; make")
43
43
  else
44
44
  system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='sdl-config'; make")
45
45
  end
46
46
  else # linux, U*IX...
47
- if ENV['SDL_CONFIG_PATH']
47
+ if ENV['SDL_CONFIG_PATH']
48
48
  system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='#{ENV['SDL_CONFIG_PATH']}'; make")
49
49
  else
50
50
  system(Config::CONFIG["ruby_install_name"] + " extconf.rb --with-sdl-config='sdl-config'; make")
51
51
  end
52
52
  end
53
53
 
54
- sitelibdir = Config::CONFIG["sitelibdir"] + "/Miyako"
54
+ baselibdir = Config::CONFIG["sitelibdir"]
55
+ sitelibdir = baselibdir + "/Miyako"
55
56
  apidir = sitelibdir + "/API"
56
57
  extdir = sitelibdir + "/EXT"
57
58
 
@@ -71,6 +72,7 @@ if osn =~ /darwin/ # Mac OS X
71
72
  else # Windows, linux, U*IX...
72
73
  Dir.glob(ext_dir + "*.so"){|fname| FileUtils.install(fname, sitelibdir, option)}
73
74
  end
75
+ Dir.glob("lib/*.rb"){|fname| FileUtils.install(fname, baselibdir, option)}
74
76
  Dir.glob("lib/Miyako/*.rb"){|fname| FileUtils.install(fname, sitelibdir, option)}
75
77
  Dir.glob("lib/Miyako/API/*.rb"){|fname| FileUtils.install(fname, apidir, option)}
76
78
  Dir.glob("lib/Miyako/EXT/*.rb"){|fname| FileUtils.install(fname, extdir, option)}
@@ -33,6 +33,7 @@ module Miyako
33
33
  def Audio.init(buf_size = 4096, seq = 44100)
34
34
  raise MiyakoError, "Already initialized!" if @@initialized
35
35
  SDL::Mixer.open(seq, SDL::Mixer::DEFAULT_FORMAT, 2, buf_size) unless $not_use_audio
36
+ SDL::Mixer.allocate_channels(SE.channels)
36
37
  @@initialized = true
37
38
  end
38
39
 
@@ -320,7 +321,7 @@ module Miyako
320
321
 
321
322
  #===同時発音数を取得する
322
323
  #返却値:: 同時再生数
323
- def SE.channels=(channels)
324
+ def SE.channels
324
325
  @@channels
325
326
  end
326
327
 
@@ -335,15 +336,19 @@ module Miyako
335
336
  end
336
337
 
337
338
  #===同時発音数を変更する
338
- #設定変更は効果音が鳴っていないときに有効。
339
- #鳴っているときに変更しようとするとfalseが返ってくる。
340
- #デフォルトの同時発音数は8。
341
- #_channels_:: 変更するチャネル数。0以下を指定するとエラー
339
+ #同時発音数に0以下を指定するとMiyakoValueErrorが発生する
340
+ #現在同時に発音している音が新しいせっていによりあぶれる場合、あぶれた分を優先度の低い順に停止する
341
+ #起動時の同時発音数は8
342
+ #_channels_:: 変更する同時発音数
342
343
  #返却値:: 変更に成功したときはtrue、失敗したときはfalseを返す
343
344
  def SE.channels=(channels)
344
345
  return false if $not_use_audio
345
- return false if SE.playing_any?
346
346
  raise MiyakoValueError, "Illegal Channels! : #{channels}" if channels <= 0
347
+ if @@playings.length > channels
348
+ num = @@channels - channels
349
+ sorted = @@playings.sort{|a,b| a.priority <=> b.priority}
350
+ num.times{|n| sorted[n].stop}
351
+ end
347
352
  SDL::Mixer.allocate_channels(channels)
348
353
  @@channels = channels
349
354
  return true