cyross-ruby-miyako 2.0.0 → 2.0.5.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 (102) hide show
  1. data/README +106 -154
  2. data/defines.h +144 -0
  3. data/{miyako_no_katana/extconf.rb → extconf.rb} +10 -0
  4. data/extern.h +29 -0
  5. data/install_miyako.rb +26 -14
  6. data/lib/Miyako/API/audio.rb +2 -2
  7. data/lib/Miyako/API/basic_data.rb +183 -41
  8. data/lib/Miyako/API/bitmap.rb +474 -2
  9. data/lib/Miyako/API/choices.rb +215 -48
  10. data/lib/Miyako/API/collision.rb +267 -251
  11. data/lib/Miyako/API/diagram.rb +58 -70
  12. data/lib/Miyako/API/drawing.rb +93 -52
  13. data/lib/Miyako/API/fixedmap.rb +233 -120
  14. data/lib/Miyako/API/font.rb +59 -40
  15. data/lib/Miyako/API/input.rb +34 -27
  16. data/lib/Miyako/API/layout.rb +154 -172
  17. data/lib/Miyako/API/map.rb +285 -159
  18. data/lib/Miyako/API/map_event.rb +4 -4
  19. data/lib/Miyako/API/modules.rb +1 -1
  20. data/lib/Miyako/API/movie.rb +8 -5
  21. data/lib/Miyako/API/parts.rb +44 -9
  22. data/lib/Miyako/API/plane.rb +37 -2
  23. data/lib/Miyako/API/screen.rb +90 -22
  24. data/lib/Miyako/API/shape.rb +118 -37
  25. data/lib/Miyako/API/sprite.rb +475 -61
  26. data/lib/Miyako/API/sprite_animation.rb +83 -63
  27. data/lib/Miyako/API/spriteunit.rb +47 -13
  28. data/lib/Miyako/API/story.rb +123 -47
  29. data/lib/Miyako/API/textbox.rb +361 -132
  30. data/lib/Miyako/API/utility.rb +388 -0
  31. data/lib/Miyako/API/viewport.rb +54 -349
  32. data/lib/Miyako/API/yuki.rb +570 -353
  33. data/lib/Miyako/EXT/miyako_cairo.rb +5 -3
  34. data/lib/Miyako/EXT/slides.rb +22 -1
  35. data/lib/Miyako/miyako.rb +12 -13
  36. data/logo/EGSR_logo.png +0 -0
  37. data/logo/EGSR_logo_bg.png +0 -0
  38. data/logo/EGSR_logo_fg.png +0 -0
  39. data/logo/EGSR_title_banner.png +0 -0
  40. data/logo/EGSR_title_logo.png +0 -0
  41. data/logo/miyako.png +0 -0
  42. data/logo/miyako_banner.png +0 -0
  43. data/logo/space.png +0 -0
  44. data/miyako_basicdata.c +590 -0
  45. data/miyako_bitmap.c +1225 -0
  46. data/miyako_collision.c +403 -0
  47. data/miyako_drawing.c +187 -0
  48. data/miyako_font.c +334 -0
  49. data/miyako_hsv.c +830 -0
  50. data/miyako_layout.c +191 -0
  51. data/miyako_no_katana.c +1074 -0
  52. data/miyako_transform.c +438 -0
  53. data/miyako_utility.c +288 -0
  54. data/sample/Animation1/m1ku.rb +10 -31
  55. data/sample/Animation1/readme.txt +6 -6
  56. data/sample/Animation2/lex.rb +1 -0
  57. data/sample/Animation2/readme.txt +6 -6
  58. data/sample/Diagram_sample/diagram_sample_yuki2.rb +152 -48
  59. data/sample/Diagram_sample/readme.txt +9 -6
  60. data/sample/Room3/blue.rb +234 -187
  61. data/sample/Room3/ending.rb +68 -63
  62. data/sample/Room3/green.rb +159 -124
  63. data/sample/Room3/main.rb +50 -32
  64. data/sample/Room3/main_component.rb +3 -2
  65. data/sample/Room3/readme.txt +6 -6
  66. data/sample/Room3/red.rb +161 -134
  67. data/sample/Room3/room3.rb +1 -0
  68. data/sample/Room3/title.rb +75 -62
  69. data/sample/ball_action_sample.rb +204 -0
  70. data/sample/blit_rop.rb +70 -0
  71. data/sample/cairo_sample.rb +25 -0
  72. data/sample/circle_collision_test.rb +66 -0
  73. data/sample/collision_test.rb +33 -0
  74. data/sample/collision_test2.rb +108 -0
  75. data/sample/fixed_map_test/fixed_map_sample.rb +23 -32
  76. data/sample/fixed_map_test/readme.txt +38 -38
  77. data/sample/map_test/chara.rb +17 -9
  78. data/sample/map_test/main_parts.rb +30 -9
  79. data/sample/map_test/main_scene.rb +57 -41
  80. data/sample/map_test/map_manager.rb +13 -30
  81. data/sample/map_test/map_test.rb +2 -2
  82. data/sample/map_test/oasis.rb +17 -11
  83. data/sample/map_test/readme.txt +50 -48
  84. data/sample/map_test/route.rb +46 -33
  85. data/sample/map_test/town.rb +19 -13
  86. data/sample/polygon_test.rb +35 -0
  87. data/sample/rasterscroll.rb +25 -0
  88. data/sample/takahashi.rb +42 -0
  89. data/sample/text.png +0 -0
  90. data/sample/textbox_sample.rb +190 -0
  91. data/sample/transform.rb +54 -0
  92. data/sample/utility_test.rb +73 -0
  93. data/sample/utility_test2.rb +61 -0
  94. data/sample/utility_test3.rb +64 -0
  95. data/sample/utility_test4.rb +73 -0
  96. data/uninstall_miyako.rb +19 -0
  97. data/win/miyako_no_katana.so +0 -0
  98. metadata +165 -148
  99. data/miyako.png +0 -0
  100. data/miyako_banner.png +0 -0
  101. data/miyako_no_katana/miyako_no_katana.c +0 -3301
  102. data/sample/fixed_map_test/map_sample.rb +0 -121
data/README CHANGED
@@ -1,11 +1,11 @@
1
1
  *******************************************************************************
2
2
  【 作者名 】 サイロス誠
3
3
  【 ソフト名 】 Interactive Media Authoring System "Miyako"
4
- 【 バージョン 】 2.0.0
5
- 【 作成日 】 2008/xx/xx
4
+ 【 バージョン 】 2.0.5.1
5
+ 【 作成日 】 2009/4/26
6
6
  【 種別 】 フリーウェア
7
- 【 開発言語 】 Ruby 1.8.7-p22
8
- 【 ランタイム 】 Ruby 1.8.7~,Ruby/SDL 2.0~,SDL
7
+ 【 開発言語 】 Ruby 1.9.1
8
+ 【 ランタイム 】 Ruby 1.9.1~,Ruby/SDL 2.1~,SDL
9
9
  【 対応機種 】 Windows 2000/XP/Vista、Linux、MacOSX
10
10
  【 再配布 】 GNU LGPL 2.1に基く
11
11
  【 転載 】 GNU LGPL 2.1に基く
@@ -70,7 +70,6 @@ Miyakoのタイトルは、以下の事柄に由来しています
70
70
  ・MPEGファイルによるムービー再生に対応
71
71
  ・キーボード、ジョイパッド両対応(1人プレイのみという制限付きです・・・)
72
72
  ・マウス対応(v1.0~)
73
- ・Stateパターン(状態遷移図のようなもの)を使用して処理の流れを記述できるDiagramProcessorクラスなど(v1.5pre6~)
74
73
  ・Ruby/SDLの機能が使える(ラッパークラスなので)
75
74
  ・Rubyの勉強に役に立つ(ハズ)
76
75
 
@@ -80,7 +79,7 @@ Miyakoのタイトルは、以下の事柄に由来しています
80
79
  ・ドキュメントが全然整っていない(リファレンスはまだまだ・・・)
81
80
   →各種チュートリアルや「るびま」記事などでドキュメントを拡充する予定
82
81
 
83
- 【 開発環境
82
+ 【 開発環境
84
83
 
85
84
  <メイン開発PC>
86
85
  CPU : Core2Duo E6850
@@ -92,8 +91,8 @@ PAD : BUFFALO BGC-FC802
92
91
  Logicool G-UF13
93
92
  OS : Microsoft WindowsXp SP3
94
93
  Microsoft WindowsVista Ultimate(x64) SP1
95
- DEV : Notepad++ v5.1.5 +EUC-JP
96
- ActiveRuby 1.8.7-p22 + Ruby/SDL 2.0b
94
+ DEV : Notepad++ v5.3.1-6
95
+ mswin32版Ruby 1.9.1-p0 + Ruby/SDL 2.1
97
96
  MinGW+MSYS(miyako_no_katanaビルド)
98
97
  rcairo-1.8.0(miyako-cairo検証用)
99
98
 
@@ -103,10 +102,15 @@ CPU : PentiumM 1.1GHz
103
102
  MEM : 784(256+512)MB
104
103
  PAD : SANWA SUPPLY JY-P1W
105
104
  OS : Microsoft WindowsXp SP3
106
- DEV : Notepad++ v5.1.5 +EUC-JP
107
- ActiveRuby 1.8.7-p22 + Ruby/SDL 2.0b
105
+ DEV : Notepad++ v5.3.1-6
106
+ mswin32版Ruby 1.9.1-p0 + Ruby/SDL 2.1
108
107
  MinGW+MSYS(miyako_no_katanaビルド)
109
108
 
109
+ 【 動作確認環境 】
110
+
111
+ 上記環境に追加して、VMWarePlayer上で動作している
112
+ Ubuntu9.04(x86)+Ruby1.9.1+Ruby/SDL2.1.0で動作確認済み
113
+
110
114
  【 動作環境 】
111
115
 
112
116
  WindowsXp Home/Pro、WindowsVista、Linux、MacOSX等、Ruby/SDLが動作する環境
@@ -118,8 +122,8 @@ WindowsXp Home/Pro、WindowsVista、Linux、MacOSX等、Ruby/SDLが動作する
118
122
  ビデオメモリ :8MB(32bitカラー対応、64MB以上奨励)
119
123
  サウンドカード:必須(出来ればSoundBlaster Live!クラス)
120
124
 
121
- Ruby1.8.7以降
122
- Ruby/SDL 2.0+対応SDLライブラリ群
125
+ Ruby1.9.1以降
126
+ Ruby/SDL 2.1+対応SDLライブラリ群
123
127
  (SDL、SDL_ttf、SDL_image、SDL_Mixer、SGE、smpeg)
124
128
  rcairo 1.8.0以降(miyako-cairo使用時)
125
129
 
@@ -127,14 +131,13 @@ rcairo 1.8.0以降(miyako-cairo使用時)
127
131
 
128
132
  アーカイブファイルを展開すると以下のファイルが展開されます。
129
133
 
130
- Miyako/miyako.rb(Miyakoライブラリ)
131
- Miyako/win/idaten_miyako.so(Windows用idaten_miyako)
132
- Miyako/win/miyako_no_katana.so(Windows用miyako_no_katana)
133
- ・Miyako/libディレクトリ(ライブラリ本体)
134
+ ・miyako.rb(Miyakoライブラリ)
135
+ ・win/miyako_no_katana.so(Windows用miyako_no_katana)
136
+ libディレクトリ(ライブラリ本体)
134
137
  ・miyako_no_katana/miyako_no_katana.c(miyako_no_katanaソース)
135
138
  ・miyako_no_katana/extconf.rb(miyako_no_katanaコンパイル用configureファイル)
136
139
  ・install_miyako.rb(Miyakoインストール実行ファイル)
137
- readme.txt(本ファイル)
140
+ README(本ファイル)
138
141
  ・docディレクトリ(リファレンスマニュアル)
139
142
 
140
143
  【 インストール 】
@@ -144,7 +147,7 @@ rcairo 1.8.0以降(miyako-cairo使用時)
144
147
  1.Rubyのインストール
145
148
 
146
149
  Linuxでは標準でRubyがインストールされていいるはずですので説明は割愛します。
147
- なお、バージョンは最新の1.8系統(1.8.7以降)でお願いします。
150
+ なお、バージョンは最新の1.9系統(1.9.1以降)でお願いします。
148
151
 
149
152
  Windowsでは、以下のサイトにあるActiveRubyのインストールをお願いします。
150
153
  (詳しい説明は割愛)
@@ -212,7 +215,7 @@ Windowsでは、Ruby/SDLバイナリパッケージの使用をお奨めしま
212
215
  また、sdl-configの場所を正しく指定できる様に、環境変数SDL_CONFIG_PATH(sdl-configの実行パス)のを参照しています。
213
216
  ビルド前に必ず設定をお願いいたします。
214
217
 
215
- (例)SDL_CONFIG_PATH='/bin/sh /usr/bin/sdl-config'
218
+ (例)SDL_CONFIG_PATH='sdl-config'
216
219
 
217
220
  # お手数とは思いますが、LinuxやMacOSXなどで設定した方法をフィードバックしていただけると大いに助かります。
218
221
  # フィードバックは次期バージョンに反映いたします。
@@ -832,146 +835,95 @@ v1.5.0a(2008.07.21)
832
835
  ・Layout#round_rev2_x, round_rev2_yメソッドのバグ修正
833
836
  ・RDoc形式リファレンスマニュアルを修正(画像キャッシュの説明追加)
834
837
 
835
- v2.0.0(2008.xx.xx)
836
- ・Ruby/SDL2.0準拠に変更
837
- ・対象Rubyランタイムを、Ruby1.8.7以降に変更(バージョンチェックの追加)
838
+ v2.0.0(2009.4.13)
839
+ ・Ruby/SDL2.1準拠に変更
840
+ ・対象Rubyランタイムを、Ruby1.9.1以降に変更(バージョンチェックの追加)
838
841
  ・各ファイルの先頭に"# -*- encoding: utf-8 -*-"を追加
839
- ・to_unitメソッドをStructクラスのメソッドに変更(SpriteUnitクラスは構造体に変更)
840
- ・Font#text_sizeメソッドの内容の変更(2バイト以上の文字の幅が実際の文字の幅よりも大きくなっているため)
841
- ・Font#bold、italic、under_lineメソッドの内容の変更(ブロックを渡すと、ブロック評価中のみ効果がある仕様を追加)
842
- ・Font#margin_height、size_during、color_during、shadow_duringメソッドの追加
843
- ・SpriteBase#render、rect、broad_rectメソッドの追加、dp,dp=,show,hideメソッドの廃止
844
- ・SpriteBase.ox,oy,ow,ohメソッドの戻り値仕様を変更(nil→0へ変更)
845
- ・SpriteBase.to_spriteメソッドの戻り値仕様を変更(nil→selfへ変更)
846
- ・SpriteUnit構造体にprocessアクセサを追加
847
- ・SpriteUnit構造体にdx,dyアクセサを追加
848
- ・SpriteUnitFactoryクラスの追加
849
- ・Sprite#effect、effect=メソッドを廃止(Effectクラスの独立化)
850
- ・Sprite#render_to、Sprite#render_transform、Sprite#render_to_transformメソッドの追加
851
- ・Sprite#render、Sprite#render_to、Sprite#render_transform、Sprite#render_to_transformにブロックを渡すことでrender対象のSpriteUnitを調整することができる処理を追加
852
- ・Sprite.render_spriteメソッドの追加(スプライト同士の転送に対応)
853
- ・Sprite#collisionメソッドの廃止(コリジョンの独立化)
854
- ・Sprite#to_spriteメソッドの処理変更(selfを返す→複製して返す)
855
- ・Sprite#angle,angle=,xscale,xscale=,yscale,yscale=,center_x,center_x=,center_y,center_y=メソッドの追加
856
- ・Sprite#broad_rectメソッドの追加
857
- ・Sprite.newメソッドに:unitハッシュキーを追加(SpriteUnitから生成)
858
- ・Spriteクラスの各種画像変換メソッド(scale、rotate、hsvなど)を廃止
859
- ・Animation.update_animationメソッドの戻り値仕様を変更(self→falseへ変更)
860
- ・SpriteAnimation#update_animatioメソッドの戻り値仕様を変更(パターンが変更されたときtrueを返す)
861
- ・SpriteAnimation#render_toメソッドの追加
862
- ・SpriteAnimation#render、SpriteAnimation#render_toにブロックを渡すことでrender対象のSpriteUnitを調整することができる処理を追加
863
- ・SpriteAnimation#rect、broad_rectメソッドの追加
864
- ・SpriteAnimation#to_spriteメソッドの処理を変更(元になったインスタンスのto_spriteメソッドを呼び出した時の値となる)
865
- ・TextBox#marginアクセサ、TextBox#margin_duringメソッドを追加(set_marginメソッドは、ブロックを渡すと、そのブロックが評価されている間だけマージンが有効)
866
- ・TextBox#font_size_during、font_bold、font_italic、font_under_line、color_during、margin_heightメソッドを追加
867
-  (ブロックを渡すと、そのブロックが評価されている間だけフォントの属性が変更)
868
- ・Yukiモジュールの廃止(Yuki::Yuki2クラスはMiyako::Yukiクラスに変更)
869
- ・Yuki#dispose、Yuki::Manager#disposeメソッドの追加
870
- ・Yuki#selecting?、Yuki#waiting?、Yuki#pausing?メソッドの追加
871
- ・Yuki#is_scene?、Yuki#is_scenario?メソッドの追加
872
- ・Yuki#resultメソッドの追加(旧Yuki#resultメソッドはYuki#select_resultメソッドに改名)
873
- ・Yuki#renderメソッドの追加、Yuki#show、Yuki#hideメソッドインタフェースの変更
874
- ・Yuki#update、Yuki::Manager#updateメソッドの返却値を変更
875
-  (引数:デフォルトシーン名→なし
876
-   結果インスタンス→返却値無し(Yuki#result、Yuki::Manager#resultの確認で代用))
877
- ・Yuki#update_plotメソッドをYuki#updateメソッドに改名
878
- ・Yuki#plot_executing?メソッドをYuki#executing?に改名
879
- ・Yuki#canseled?メソッドの追加
880
- ・Yuki#to_plotメソッドの追加
881
- ・Yuki#resultメソッドをYuki#select_resultメソッドに改名
882
- ・Yuki#scenarioメソッドの廃止
883
- ・Yuki#get_plot_resultメソッドの廃止
884
- ・Yuki#result_is_scene?、Yuki#result_is_scenario?メソッドの廃止
885
- ・Yuki#exec_plotメソッドをYuki#start_plotメソッドに変更
886
- ・Yuki::Manager#selecting?、Yuki::Manager#waiting?、Yuki::Manager#pausing?メソッドの追加
887
- ・Yuki::Manager#canseled?メソッドの追加
888
- ・Yuki::Canseled構造体の追加(コマンドキャンセル判別用)
889
- ・Yuki::Command構造体の使用を変更(選択時画像・文字を指定するbody_selectedを追加)
890
- ・Viewportクラスの追加(viewport.rbの追加)
891
- ・Viewport#in_bounds?、in_bounds_x?、in_bounds_y?、in_bounds_ex?、in_bounds_ex_x?、in_bounds_ex_y?
892
-  round、round_x、round_y、in_bounds_rev?、in_bounds_rev_x?、in_bounds_rev_y?
893
-  round_rev、round_rev_x、round_rev_y、in_bounds_rev2?、in_bounds_rev2_x?、in_bounds_rev2_y?
894
-  round_rev2、round_rev2_x、round_rev2_yの各メソッドを追加(Layoutモジュールから移動)
895
- ・Bitmap.caceheメソッドの廃止(画像データのキャッシュの廃止)
896
- ・Bitmap.miyako_blit_aaメソッドを廃止
897
- ・Bitmap.miyako_blit_aa2メソッドをBitmap.blit_aa!メソッドに改名・インタフェース変更
898
- ・Bitmapクラスの各種画像変換メソッドの最後に!を追加(rotate, scale, transformは除く)
899
- ・Bitmap.dec_alpha!メソッドの変化率の仕様を変更(1.0・・・完全な透明、-1.0・・・完全な不透明)
900
- ・Bitmap.black_out!、Bitmap.white_out!メソッドの追加
901
- ・Bitmap.hue、Bitmap.hsvメソッドのradianパラメータをdegreeパラメータ(度単位)に変更
902
- ・Bitmap.ck_to_acメソッドの追加(特定カラーのα値をゼロにした、αチャネル付き画像を生成する。Sprite.newのカラーキー透明画像はこれに置き換えられる)
903
- ・Bitmap.normal_to_acメソッドの追加(すべての画素のα値を255にした、αチャネル付き画像を生成する。Sprite.newの未設定画像はこれに置き換えられる)
904
- ・Bitmap.scale、Bitmap.transformメソッドの高速化(拡大/縮小の係数を4096分割した整数計算(近似計算)に変更)
905
- ・Sprite#alpha/alpha=メソッドの廃止(Bitmap.dec_alphaメソッドで代用)
906
- ・Shape#takahashiメソッドのインタフェース・仕様を変更(:linesの追加、指定の行数を基準に文字サイズを計算。但し、1行の文字数が多ければそちらを優先)
907
- ・Parts#main_partsを廃止(インスタンス生成時にParts自身の大きさを指定する方式に変更)
908
- ・Parts#[]=メソッドのインタフェース変更(すべてPartsインスタンス本体へのsnapとして設定)
909
- ・Parts#broad_rect、to_spriteメソッドの追加
910
- ・Screen.updateメソッドの廃止(Screen.renderに統一)
911
- ・Screen.renderメソッドのインタフェース変更(is_clear引数の廃止)
912
- ・Screen.sizeメソッドの追加
913
- ・Screen.to_unitメソッドの追加
914
- ・Screen.center_x,center_x=,center_y,center_y=メソッドの追加
915
- ・Screen.set_sizeメソッドの仕様変更(画面の大きさを変更しても、レイアウトの自動変更は行わない)
916
- ・Screen.broad_rectメソッドの追加
917
- ・Layout#in_bounds?、in_bounds_x?、in_bounds_y?、in_bounds_ex?、in_bounds_ex_x?、in_bounds_ex_y?
918
-  round、round_x、round_y、in_bounds_rev?、in_bounds_rev_x?、in_bounds_rev_y?
919
-  round_rev、round_rev_x、round_rev_y、in_bounds_rev2?、in_bounds_rev2_x?、in_bounds_rev2_y?
920
-  round_rev2、round_rev2_x、round_rev2_yの各メソッドを廃止(Viewportクラスのインスタンスメソッドに変更)
921
- ・Storyクラスのview_inメソッド、view_outメソッドの廃止、renderメソッドの追加、描画の実装方法を変更
922
- ・LayoutSpace#broad_rectメソッドを追加
923
- ・LayoutSpace#rectメソッドがnilを返すバグを修正
924
- ・Textbox#renderメソッドのインタフェース変更(text_renderの廃止、paramsの追加)
925
- ・Textbox#columns、rows、text_size、update_animationメソッドの追加
926
- ・Textbox#broad_rect、to_spriteメソッドの追加
927
- ・Diagram::Processor#sync?メソッドの追加
928
- ・SingleEnumerable.sizeメソッドの廃止(弊害が大きいため(Sprite#sizeメソッドのバグなど)。lengthのみ用意)
929
- ・Choice#body_selected, Choice#selectedメソッドの追加(選択時に表示を変える方式を実装)
930
- ・Choices#start_choiceメソッド引数インタフェースの変更(第1引数にnilを渡すと、最後に選択した選択肢が自動的に選択される)
931
- ・Choices#non_select,selectメソッドの追加
932
- ・Choices#sizeメソッドの廃止(弊害が大きいため。lengthのみ用意)
933
- ・Choices#rect、broad_rect、to_spriteメソッドの追加
934
- ・Collision#move、Collision#move_toメソッドを追加
935
- ・Plane#rect、Plane#broad_rectメソッドの追加
936
- ・Effectクラスを廃止
937
- ・Map#update、FixedMap#updateメソッドの内容変更(MapEventのupdateは行われず、明示的に呼び出すことに注意)
938
- ・Map#render、FixedMap#renderメソッドの追加(MapEventはrenderされず、明示的に呼び出すことに注意)
939
- ・Map#view_posメソッドを廃止、Map#marginメソッドを追加
940
- ・Map#syncメソッドを廃止、Map#sync_marginメソッドを追加(margin変更後、各レイヤへ同期させるために呼び出す)
941
- ・Map#render_toメソッドの追加
942
- ・Map#render、Map#render_toにブロックを渡すことでrender対象のSpriteUnitを調整することができる処理を追加
943
- ・Map#rect、Map#broad_rectメソッドの追加
944
- ・FixedMap#render_toメソッドの追加
945
- ・FixedMap#render、FixedMap#render_toにブロックを渡すことでrender対象のSpriteUnitを調整することができる処理を追加
946
- ・FixedMap#rect、FixedMap#broad_rectメソッドの追加
947
- ・MapEvent.newメソッドのインタフェース変更
948
- ・MapEvent#initメソッドのインタフェース変更(引数として、登録もとMap/FixedMapクラスのインスタンス・マップ上の位置を取得)
949
- ・MapEvent#execメソッドをMapEvent#startメソッドに改名
950
- ・MapEvent#move、MapEvent#move_toメソッドを追加
951
- ・MapEventManagerクラスの追加。MapEvent管理(イベントIDとの関連づけ)は全マップからMap/FixedMapインスタンス単位に変更
952
- ・MiyakoTapモジュールの廃止(tapメソッドが使えるようになったため)
953
- ・drawing.rb追加
954
- ・Drawingモジュール追加(画像・画面への線形描画用)
955
- ・これにより、Spriteクラスの各種線形描画メソッドを廃止
956
- ・bitmap.rb追加(Bitmapクラスをここに移動)
957
- ・spriteunit.rb追加(SpriteUnit構造体関連をここに移動)
958
- ・choices.rb追加
959
- ・fixedmap.rb追加
960
- ・map_event.rb追加
961
- ・viewport.rb追加
962
- ・miyako_no_katanaから、SDLのサーフェスを直接アクセスする方法に変更
963
- ・idaten_miyakoとmiyako_no_katanaの統合(ライブラリはmiyako_no_katanaに統一)
964
- ・EXT/miyako_cairo.rb追加
965
- ・MiyakoCairoモジュールを追加
966
- ・MiyakoCairo.to_cairo_surface、MiyakoCairo.to_spriteメソッドの追加
967
- ・RasterScrollクラスの修正(render/render_toメソッド追加など)
968
- ・Slideの初期化方法の変更(スライド本体(背景)は、slide[:___base___]で参照可能に)
969
- ・Slide#render、render_to、update、update_animationメソッド追加
970
- ・Slide[]で利用できるテンプレートに"white","black","half-white"を追加
842
+ ・グローバル変数$miyako_use_wait、$miyako_wait_time、$miyako_use_openglを追加
843
+  (フレームバッファ:32bit(赤、青、緑、αともに8bit)、デプスバッファ:32bit、ステンシルバッファ:32bit)
844
+ ・メソッド群の大幅な見直し
971
845
  ・miyako_ext.rb削除
972
846
  ・install_miyaok.rbの修正(旧バージョンのディレクトリを削除、miyako_no_katanaビルド時に環境変数SDL_CONFIG_PATHを参照する様にした)
973
847
  ・リファレンス(RDoc)の拡充
974
848
  ・他、細かいバグの修正
975
849
 
850
+ v2.0.1(2009.4.18)
851
+ ・Choices#end_choice,choicing?,move,move_toメソッドを追加
852
+ ・Choices#end_select?,call_end_select_procメソッドを廃止(Choices#end_choiceメソッドに内包)
853
+ ・TextBox#execute,execute?,updateメソッドを追加
854
+ ・TextBox#commandメソッドのインタフェースを変更(デフォルト付き引数を2つ追加)
855
+ ・引数にspriteunitを受け取れるブロックを渡すメソッド(Bitmap.blit_and等)で、ox,oyに変更を与えるとプログラムが止まる問題を修正
856
+ ・Bitmap.inverseメソッドで正しく画像が転送されない問題を修正
857
+ ・Choicesの各メソッドで、start_choiceで選択を開始していない時にエラーが出るバグを修正
858
+ ・TextBox#create_choices_chainメソッドで、引数のto_spriteメソッドが受け持つ引数の数が0個の時の対処が行われていなかった問題を修正
859
+ ・各クラスのto_spriteメソッドで、背景が透明になっていなかった問題を修正
860
+ ・Sprite#and, or, xor, dec_alpha, dec_alpha!, black_out, black_out!, white_out, white_out!,
861
+   inverse, inverse!, additive, additive!, subtraction, subtraction!,
862
+   hue, hue!, saturation, saturation!, value, value!, hsv, hsv!の各メソッドに
863
+  ブロックを渡せるように修正(引数は、Bitmapクラスの各メソッドの内容と同じ)
864
+ ・拡張ライブラリのMSB CPU対応コードにあったコーディングミスを修正
865
+ ・サンプルblit_rop.rb、textbox_sample.rbを追加
866
+ ・ドキュメントの修正
867
+
868
+ v2.0.2(2009.4.18)
869
+ ・ChoicesクラスでmixinしているLayoutモジュールの適応範囲を広げる(left,right,top,bottom,move,move_toなどを利用可能に)
870
+ ・Choices#leftメソッドをChoices#left_choiceメソッドに改名
871
+  (mixinしているLayoutモジュールのleftメソッドを機能させるため)
872
+ ・Choices#rightメソッドをChoices#right_choiceメソッドに改名
873
+  (mixinしているLayoutモジュールのrightメソッドを機能させるため)
874
+ ・Choices#upメソッドをChoices#up_choiceメソッドに改名
875
+  (left_choice,right_choiceメソッドとpostfixを統一させるため)
876
+ ・Choices#downメソッドをChoices#down_choiceメソッドに改名
877
+  (left_choice,right_choiceメソッドとpostfixを統一させるため)
878
+ ・Choices#broad_rectメソッドの内部処理を変更
879
+ ・Choices#end_select?,call_end_select_procメソッドを廃止(Choices#end_choiceメソッドに内包)
880
+ ・TextBox#execute,execute?,updateメソッドを追加
881
+ ・TextBox#commandメソッドのインタフェースを変更(デフォルト付き引数を2つ追加)
882
+ ・サンプルtextbox_sample.rbの修正
883
+ ・ドキュメントの修正
884
+
885
+ v2.0.3(2009.4.19)
886
+ ・当たり判定の計算を整数計算から実数計算に変更
887
+ ・Collision.collision?、Collision.cover?メソッドでチェック漏れがあった問題を修正
888
+ ・Utility.product_linerメソッドで、rect.wの値が1の時にエラーが出る問題を修正
889
+ ・Sprite.clear!メソッドの追加
890
+ ・Utility.product_liner_f/product_liner_by_square_f/product_position_f/product_position_by_square_fメソッドを追加
891
+ ・サンプルball_action_sample.rb, utility_test3.rbを追加
892
+ ・ドキュメントの修正
893
+
894
+ v2.0.4(2009.4.25->2.0.5リリースのため、リリースをスキップ)
895
+ ・Windows以外のOSで、install_miyako.rbが正しく動作しない問題を修正
896
+ ・CircleCollision.intervalとCircleCollision#intervalメソッドを追加
897
+ ・CollisionとCircleCollisionとの当たり判定ができるように、共通のデータを持たせた
898
+  (判定処理は、レシーバのクラスに依る)
899
+ ・Collision.newの引数の幅・高さが0以下の時は例外が発生するように変更
900
+ ・Utility.product_liner/product_liner_by_squareの引数を、整数・実数両対応にした
901
+  (引数に実数が含まれる場合は、全て実数として処理する)
902
+  (Utility.product_liner_f/product_liner_by_square_fは、互換性のために残す)
903
+ ・サンプルutility_test4.rb(utility_test.rbの実数版)、collision_test2.rbを追加
904
+ ・サンプルcircle_collision_test.rbの内容を変更
905
+ ・MANIFESTファイルを追加
906
+ ・gemspecファイルの修正
907
+
908
+ v2.0.5(2009.4.26)
909
+ ・SegmentStructクラス、Segment構造体を追加
910
+ ・Rect#resizeメソッドをRect#resize_toメソッドに改名
911
+ ・Rect#resizeメソッドを追加
912
+ ・Viewport#resizeメソッドをViewport#resize_toメソッドに改名
913
+ ・Viewport#resizeメソッドを追加
914
+ ・Viewportクラスの幅・高さのエラー範囲を「マイナス」から「0以下」に変更
915
+ ・Layout.segmentメソッドの追加
916
+ ・Screen.segmentメソッドの追加
917
+ ・Utility.in_bounds?,in_bounds_ex?,in_bounds_rev?,in_bounds_rev_ex?メソッドの引数flagのデフォルトをfalseに変更
918
+ ・Utility.in_bounds_by_size?,in_bounds_ex_by_size?,in_bounds_rev_by_size?,in_bounds_rev_ex_by_size?メソッドの
919
+  引数flagのデフォルトをfalseに変更
920
+ ・Segment#in_bounds?,in_bounds_ex?,in_bounds_rev?,in_bounds_rev_ex?メソッドの引数flagのデフォルトをfalseに変更
921
+ ・リファレンスマニュアルの修正
922
+ ・gemspecファイルの修正
923
+ (・gemを、ruby-miyako(Linux,MacOSX等)とruby-miyako-mewin32に分離)
924
+
925
+ v2.0.5.1(2009.4.26)
926
+ ・アンインストールスクリプト(uninstall_miyako.rb)追加
927
+
976
928
  *******************************************************************************
977
929
  このReadMeファイルは「れ~どめ~えじた~」によって作成されました。
data/defines.h ADDED
@@ -0,0 +1,144 @@
1
+ /*
2
+ --
3
+ Miyako v2.0 Extend Library "Miyako no Katana"
4
+ Copyright (C) 2008 Cyross Makoto
5
+
6
+ This library is free software; you can redistribute it and/or
7
+ modify it under the terms of the GNU Lesser General Public
8
+ License as published by the Free Software Foundation; either
9
+ version 2.1 of the License, or (at your option) any later version.
10
+
11
+ This library is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ Lesser General Public License for more details.
15
+
16
+ You should have received a copy of the GNU Lesser General Public
17
+ License along with this library; if not, write to the Free Software
18
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
+ ++
20
+ */
21
+
22
+ #include <SDL.h>
23
+ #include <SDL_ttf.h>
24
+ #include <SDL_endian.h>
25
+ #include <stdlib.h>
26
+ #include <math.h>
27
+ #include "ruby.h"
28
+ #include "ruby/encoding.h"
29
+
30
+ typedef struct
31
+ {
32
+ SDL_Surface* surface;
33
+ } Surface;
34
+
35
+ typedef struct
36
+ {
37
+ Uint32 r;
38
+ Uint32 g;
39
+ Uint32 b;
40
+ Uint32 a;
41
+ } MiyakoColor;
42
+
43
+ typedef struct
44
+ {
45
+ int w;
46
+ int h;
47
+ } MiyakoSize;
48
+
49
+ typedef struct
50
+ {
51
+ VALUE unit;
52
+ SDL_Surface *surface;
53
+ SDL_PixelFormat *fmt;
54
+ SDL_Rect rect;
55
+ MiyakoColor color;
56
+ Uint32 a255;
57
+ Uint32 *ptr;
58
+ int x;
59
+ int y;
60
+ } MiyakoBitmap;
61
+
62
+ // from rubysdl.h
63
+ #define GLOBAL_DEFINE_GET_STRUCT(struct_name, fun, klass, klassstr) \
64
+ struct_name* fun(VALUE obj) \
65
+ { \
66
+ struct_name* st; \
67
+ \
68
+ if(!rb_obj_is_kind_of(obj, klass)){ \
69
+ rb_raise(rb_eTypeError, "wrong argument type %s (expected " klassstr ")", \
70
+ rb_obj_classname(obj)); \
71
+ } \
72
+ Data_Get_Struct(obj, struct_name, st); \
73
+ return st; \
74
+ }
75
+
76
+ #define MIYAKO_GETCOLOR(COLOR) \
77
+ COLOR.r = (Uint32)(((pixel & fmt->Rmask) >> fmt->Rshift) << fmt->Rloss); \
78
+ COLOR.g = (Uint32)(((pixel & fmt->Gmask) >> fmt->Gshift) << fmt->Gloss); \
79
+ COLOR.b = (Uint32)(((pixel & fmt->Bmask) >> fmt->Bshift) << fmt->Bloss); \
80
+ COLOR.a = (Uint32)(((pixel & fmt->Amask) >> fmt->Ashift) << fmt->Aloss);
81
+
82
+ #define MIYAKO_SETCOLOR(RESULT, COLOR) \
83
+ RESULT = (COLOR.r >> fmt->Rloss) << fmt->Rshift | \
84
+ (COLOR.g >> fmt->Gloss) << fmt->Gshift | \
85
+ (COLOR.b >> fmt->Bloss) << fmt->Bshift | \
86
+ (COLOR.a >> fmt->Aloss) << fmt->Ashift;
87
+
88
+ #define MIYAKO_SET_RECT(RECT, BASE) \
89
+ RECT.x = NUM2INT(*(RSTRUCT_PTR(BASE) + 1)); \
90
+ RECT.y = NUM2INT(*(RSTRUCT_PTR(BASE) + 2)); \
91
+ RECT.w = NUM2INT(*(RSTRUCT_PTR(BASE) + 3)); \
92
+ RECT.h = NUM2INT(*(RSTRUCT_PTR(BASE) + 4));
93
+
94
+ #define MIYAKO_INIT_RECT1 \
95
+ int dlx = drect.x + x; \
96
+ int dly = drect.y + y; \
97
+ int dmx = dlx + (srect.w < drect.w ? srect.w : drect.w); \
98
+ int dmy = dly + (srect.h < drect.h ? srect.h : drect.h);
99
+
100
+ #define MIYAKO_INIT_RECT2 \
101
+ int dlx = drect.x; \
102
+ int dly = drect.y; \
103
+ int dmx = dlx + drect.w; \
104
+ int dmy = dly + drect.h;
105
+
106
+ #define MIYAKO_INIT_RECT3 \
107
+ if(s2rect.w != drect.w){ return Qnil; } \
108
+ if(s2rect.h != drect.h){ return Qnil; } \
109
+ int x1 = NUM2INT(*(RSTRUCT_PTR(s1unit) + 5)); \
110
+ int y1 = NUM2INT(*(RSTRUCT_PTR(s1unit) + 6)); \
111
+ int x2 = NUM2INT(*(RSTRUCT_PTR(s2unit) + 5)); \
112
+ int y2 = NUM2INT(*(RSTRUCT_PTR(s2unit) + 6)); \
113
+ if(s1rect.x < 0 || s1rect.y < 0 || s2rect.x < 0 || s2rect.y < 0){ return Qnil; } \
114
+ if(s1rect.w < s2rect.w && (x1+s1rect.x+s1rect.w > s2rect.w)){ return Qnil; } \
115
+ if(s2rect.w < s1rect.w && (x2+s2rect.x+s2rect.w > s1rect.w)){ return Qnil; } \
116
+ if(s1rect.h < s2rect.h && (y1+s1rect.y+s1rect.h > s2rect.h)){ return Qnil; } \
117
+ if(s2rect.h < s1rect.h && (y2+s2rect.y+s2rect.h > s1rect.h)){ return Qnil; } \
118
+ int dlx = drect.x; \
119
+ int dly = drect.y; \
120
+ int dmx = dlx + (s1rect.w < s2rect.w ? s1rect.w : s2rect.w); \
121
+ int dmy = dly + (s1rect.h < s2rect.h ? s1rect.h : s2rect.h);
122
+
123
+ #define MIYAKO_PSET(XX,YY) \
124
+ pixel = 0; \
125
+ if(dcolor.a == 0) \
126
+ { \
127
+ *(pdst + YY * dst->w + XX) = (scolor.r >> fmt->Rloss) << fmt->Rshift | \
128
+ (scolor.g >> fmt->Gloss) << fmt->Gshift | \
129
+ (scolor.b >> fmt->Bloss) << fmt->Bshift | \
130
+ (scolor.a >> fmt->Aloss) << fmt->Ashift; \
131
+ continue; \
132
+ } \
133
+ if(scolor.a > 0) \
134
+ { \
135
+ int a1 = scolor.a + 1; \
136
+ int a2 = 256 - scolor.a; \
137
+ scolor.r = (scolor.r * a1 + dcolor.r * a2) >> 8; \
138
+ scolor.g = (scolor.g * a1 + dcolor.g * a2) >> 8; \
139
+ scolor.b = (scolor.b * a1 + dcolor.b * a2) >> 8; \
140
+ *(pdst + YY * dst->w + XX) = (scolor.r >> fmt->Rloss) << fmt->Rshift | \
141
+ (scolor.g >> fmt->Gloss) << fmt->Gshift | \
142
+ (scolor.b >> fmt->Bloss) << fmt->Bshift | \
143
+ (scolor.a >> fmt->Aloss) << fmt->Ashift; \
144
+ }