vrubyの勉強として脱出ゲームを作るというお話の続きです。
前回までは画像の扱いについて書きました。
今回は音源の扱いについて書こうと思います。
vrubyではVRMediaViewContainerをincludeすると音楽や動画などのマルチメディアを再生できます。
これを使えばBGMや効果音を鳴らすこともできますね。
今回は簡単なサンプルを作ってみたいと思います。
にゃす氏の本家サイトにもサンプルのページで「マルチメディア再生例」として見本が置かれていますが
今回はBGMにしても効果音にしても本当にただ音を鳴らせれば良いだけなんでもっとシンプルにします。
使用する音源はフリーで配布してくださるところも探せばたくさんあるはずですから各自で用意してください。
実際の使用にあたっては各配布元の使用条件に注意するようにしましょう。
_____________________________________
#! ruby -Ks
require 'vr/vruby'
require 'vr/vrcontrol'
require 'vr/vrmmedia'
class MyForm < VRForm
def construct
self.caption = 'sugoroku.ver.0'
@font = @screen.factory.newfont('MS Pゴシック', 12)
addControl(VRMediaView,"mm","mm",10,20,200,100)
@mm.mediaopen('xx_01.mid')
end
end
VRLocalScreen.start(MyForm,100,100,250,100)
_____________________________________
例えばこんな感じでしょうか。
vr/vrmmediaでVRMediaViewContainerを呼び出してます。
constructメソッド内で'xx_01.mid'という音源を呼び出して保持してます。
このケースでは実際に動かすと最小限のコントロールが画面に出ますんで再生と停止ができます。

(画面の見本です。実際には動きません)
でもゲームなどのプログラムで使うときにはこのコントロールの表示は邪魔ですし
何らかのイベントなどをきっかけにして再生させたいですよね。
でも正直に書きますと自分はこのマルチメディアの扱い(理解)がしっかりできてなくてうまく応用する自信がないんですが(^-^;)
まあとりあえず我流ですけどお付き合いください。
ではその辺も踏まえてもらって次にボタンのクリック(イベント)にあわせて音が鳴るようにしたものを示します。
_____________________________________
#! ruby -Ks
require 'vr/vruby'
require 'vr/vrcontrol'
require 'vr/vrmmedia'
class MyForm < VRForm
def construct
self.caption = 'sugoroku.ver.0'
@font = @screen.factory.newfont('MS Pゴシック', 12)
addControl(VRButton, 'b1_btn', '再生',10,10,30,20)
@b1_btn.setFont(@font)
#サイズで無理やり透明化してます
addControl(VRMediaView,"mm","mm",10,80,0,0)
@mm.mediaopen('xx_01.mid')
end
def b1_btn_clicked
@mm.play
end
end
VRLocalScreen.start(MyForm,100,100,250,100)
_____________________________________
constructメソッドにボタンを追加したのとVRMediaViewの引数のサイズを0,0にして実体を消してます。
そしてボタンに関するメソッドで「クリックしたら音が再生されるように設定しました。

(画面の見本です。実際には動きません)
どうでしょうか。
ところでループ再生のうまいやり方を教えてほしいです(^-^;)
今回もどこか間違ってたら暖かいツッコミをお願いいたします。
人気ブログランキングに参加してます。
ポチッ!としてくださると嬉しいです。

にほんブログ村
はじめまして。ようこそ(^-^)
最近プログラムを書けてないんですが、
とっつきやすくて、なんだか可能性も感じさせてくれる面白い言語なんですよね。