dxruby64 1.4.7 → 1.4.7.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '09456faf82b816e3acb5ab3134ac5062e9453e3f821c9f83835357ae334af644'
4
- data.tar.gz: 18f08cc9f7139915b9f334e1ad12a44fef3f4db94b82c773dfe0d458cf123091
3
+ metadata.gz: 8969f30b264bb74aec40d2ca89abff5443350afa31d9eab253b625ff8f1620ce
4
+ data.tar.gz: 25adaca92fdd8dde71de97b7a33130acc8d31c5cdf36825ded1aaacf28f18ee5
5
5
  SHA512:
6
- metadata.gz: 4c8a65bd3b7a8f3f7c6aca47b8098e897877614dee52ffeb76ec06e6c23522c7e8ad32fc950015097d61a1f5bedd02aec854f09e4ba975212ceea99143870712
7
- data.tar.gz: af52610d33f31cdf2846dcffcff4e3b4e62e64fdefd66ff52a2c481cccddb14339ebdd34faeedd50f8d11d082bd42cf6764612f76699f52b1d34a6ceebb147b7
6
+ metadata.gz: d377d34e27c7a09ee0b1adce6d239ebfc9843d8b22a1a1eb3c4ad0c0f8484c660609a1dde18b8b9ca36ab593f6adf2a5f77814c8653dc339cb2d22573e4182d6
7
+ data.tar.gz: eb1bdf889a6e368a8e970bd4a0585b5ea91c846a9de49961622984741187648be7911b74084a1ef17bffc29dd7c669b00c8a7066579c6722f5bd3190460b1d5d
data/README-ja.md CHANGED
@@ -55,6 +55,60 @@ gem contents dxruby64
55
55
 
56
56
  4. `Nov2008_d3dx9_40_x64.cab` の中にある `d3dx9_40.dll` を見つけ、Ruby のインストールフォルダ内の `bin` フォルダにコピー(または移動)します。(例:C:\Ruby34-x64\bin)
57
57
 
58
+ ## Soundクラスの改修について
59
+
60
+ ### 経緯など
61
+ [本家DXRuby](https://github.com/mirichi/dxruby) の Soundクラスは `DirectMusic` というライブラリを使用していましたが、
62
+ Windows 10/11 の 64bit 環境ではこの `DirectMusic` は正しく動作せず、以下のようなエラーが発生することが確認されています。
63
+
64
+ ```
65
+ `DXRuby::Sound#initialize': DirectMusic initialize error - CoCreateInstance (DXRuby::DXRubyError)
66
+ ```
67
+ このため、DXRuby64では `DirectMusic` の代替として `DirectSound` というライブラリを使用するように改修をおこないました。
68
+ (`DirectSound` は SoundEffectクラスでもすでに使用されており、実績のあるライブラリです)
69
+
70
+ ### 改修版 Soundクラスのサンプル
71
+
72
+ 前述のサンプルファイルの中に `wav_sample/`ディレクトリに改修版の Soundクラスを用いたサンプルを追加しましたのでお試しください。
73
+ なお、下記の制限事項などについてもあわせてご確認ください。
74
+
75
+ ### 制限事項など
76
+
77
+ `DirectSound` の機能上の制約などから、改修に伴って以下のような仕様変更をおこないました。
78
+
79
+ - Soundクラスで扱うことができるファイル形式は `.wav` のみ ([本家DXRuby](https://github.com/mirichi/dxruby) では `.mid` も可)
80
+
81
+ - 再生時のループ回数の指定はできず、「1回のみ再生」または「無限ループ」のいずれか
82
+
83
+ - ゲームなどで利用される効果音や BGMなどの再生を念頭に、以下に記載の最小限のメソッドのみを実装
84
+
85
+ ```
86
+ ■使用できるメソッド(新規にアレンジしたものも含む)
87
+
88
+ .new オブジェクトの生成
89
+ #play 再生
90
+ #stop 停止
91
+ #volume= 音量設定(0~255)
92
+ #set_volume 音量設定(上記 #volume= のエイリアス) ※ただし従来の第2引数による音量フェード機能はなし
93
+ #loop= ループ再生の採否設定(下記 #loop_count と同じ機能で、trueまたは falseで設定するもの)
94
+ #loop_count= ループ回数設定(ただし、前述のように「1回のみ再生(0)」または「無限ループ(-1)」のみ可)
95
+ #dispose オブジェクトの破棄
96
+ #disposed? オブジェクト破棄状況のチェック
97
+ ```
98
+
99
+ ```
100
+ ■使用できないメソッド(本家DXRubyでは実装されていたもの)
101
+
102
+ .load_from_memory
103
+ #start=
104
+ #loop_start=
105
+ #loop_end=
106
+ #pan
107
+ #pan=
108
+ #frequency
109
+ #frequency=
110
+ ```
111
+
58
112
  ## ライセンス
59
113
  この gem は zlib/libpngライセンスの下で提供されています。
60
114
 
data/lib/31/dxruby.so CHANGED
Binary file
data/lib/32/dxruby.so CHANGED
Binary file
data/lib/33/dxruby.so CHANGED
Binary file
data/lib/34/dxruby.so CHANGED
Binary file
Binary file
@@ -0,0 +1,4 @@
1
+ [ViewState]
2
+ Mode=
3
+ Vid=
4
+ FolderType=Generic
@@ -0,0 +1,17 @@
1
+ require 'dxruby'
2
+
3
+ sound = Sound.new("gameover.wav") # gameover.wav読み込み
4
+
5
+ puts sound.disposed?
6
+
7
+ Window.loop do
8
+ if Input.key_push?(K_Z) # [Z]キーで効果音を再生
9
+ sound.play
10
+ break
11
+ end
12
+ end
13
+
14
+ sleep 1
15
+ sound.dispose
16
+ puts sound.disposed?
17
+
Binary file
@@ -0,0 +1,34 @@
1
+ require 'dxruby'
2
+
3
+ sound = Sound.new("gameover.wav") # gameover.wav読み込み
4
+ sound.loop_count = 0 # 効果音は繰り返さない(「.loop_count = -1|0」形式での設定)
5
+ sound.set_volume(255) # 効果音の音量(最大)(「.set_volume(値)」形式での設定)
6
+
7
+ bgm = Sound.new("backg.wav") # backg.wav読み込み
8
+ bgm.loop = true # BGMは繰り返す(「.loop = true|false」形式での設定)
9
+ bgm.play # BGB再生
10
+ bgm.volume = 200 # BGMの音量(「.volume = 値」形式での設定」)
11
+
12
+ Window.loop do
13
+ Window.draw_font(20, 20, "[SPACE] BGM停止", Font.default)
14
+ Window.draw_font(20, 80, "[↑] BGM音量上げ", Font.default)
15
+ Window.draw_font(20, 110, "[↓] BGM音量下げ", Font.default)
16
+ Window.draw_font(20, 140, "音量 : #{bgm.volume}", Font.default, color: [255, 255, 0])
17
+ Window.draw_font(20, 200, "[Z] 効果音 再生", Font.default)
18
+ Window.draw_font(20, 350, "[ESCAPE] 終了", Font.default)
19
+
20
+ if Input.key_push?(K_Z) # [Z]キーで効果音を再生
21
+ sound.play
22
+ end
23
+ if Input.key_push?(K_SPACE) # SPACEキーでBGM終了
24
+ bgm.stop
25
+ end
26
+ if Input.key_push?(K_UP) # [↑]キーでBGMの音量を上げる
27
+ bgm.volume = bgm.volume + 5 #「.volume = 値」形式
28
+ end
29
+ if Input.key_push?(K_DOWN) # [↓]キーでBGMの音量を下げる
30
+ bgm.volume = bgm.volume - 5 #「.volume = 値」形式
31
+ end
32
+
33
+ break if Input.key_push?(K_ESCAPE)
34
+ end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dxruby64
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.7
4
+ version: 1.4.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Koki Kitamura
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2025-05-06 00:00:00.000000000 Z
11
12
  dependencies: []
12
13
  description: This gem provides a custom build of DXRuby for Ruby 3.1 and later, compiled
13
14
  for 64-bit Ruby versions using UCRT (Universal C Runtime) on Windows. It is a personal,
@@ -117,10 +118,17 @@ files:
117
118
  - sample/shader_sample/sample_vertexshader.rb
118
119
  - sample/shader_sample/sample_wingman.rb
119
120
  - sample/shader_sample/turn_transition.rb
121
+ - sample/wav_sample/backg.wav
122
+ - sample/wav_sample/desktop.ini
123
+ - sample/wav_sample/dispose.rb
124
+ - sample/wav_sample/gameover.wav
125
+ - sample/wav_sample/sound.rb
120
126
  homepage: https://github.com/spoolkitamura/dxruby64
121
127
  licenses:
122
128
  - Zlib
123
- metadata: {}
129
+ metadata:
130
+ homepage_uri: https://github.com/spoolkitamura/dxruby64
131
+ post_install_message:
124
132
  rdoc_options: []
125
133
  require_paths:
126
134
  - lib
@@ -135,7 +143,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
143
  - !ruby/object:Gem::Version
136
144
  version: '0'
137
145
  requirements: []
138
- rubygems_version: 3.6.7
146
+ rubygems_version: 3.5.22
147
+ signing_key:
139
148
  specification_version: 4
140
149
  summary: Custom build of DXRuby for 64-bit Ruby 3.1 and later (UCRT)
141
150
  test_files: []