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 +4 -4
- data/README-ja.md +54 -0
- data/lib/31/dxruby.so +0 -0
- data/lib/32/dxruby.so +0 -0
- data/lib/33/dxruby.so +0 -0
- data/lib/34/dxruby.so +0 -0
- data/sample/wav_sample/backg.wav +0 -0
- data/sample/wav_sample/desktop.ini +4 -0
- data/sample/wav_sample/dispose.rb +17 -0
- data/sample/wav_sample/gameover.wav +0 -0
- data/sample/wav_sample/sound.rb +34 -0
- metadata +13 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8969f30b264bb74aec40d2ca89abff5443350afa31d9eab253b625ff8f1620ce
|
4
|
+
data.tar.gz: 25adaca92fdd8dde71de97b7a33130acc8d31c5cdf36825ded1aaacf28f18ee5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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,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:
|
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.
|
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: []
|