2010年02月16日

Rubyの勉強22(脱出ゲームを作る3)

また前回から間が空いてしまいました(^-^;)
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'という音源を呼び出して保持してます。
このケースでは実際に動かすと最小限のコントロールが画面に出ますんで再生と停止ができます。

oto_s1.jpg
(画面の見本です。実際には動きません)

でもゲームなどのプログラムで使うときにはこのコントロールの表示は邪魔ですし
何らかのイベントなどをきっかけにして再生させたいですよね。

でも正直に書きますと自分はこのマルチメディアの扱い(理解)がしっかりできてなくてうまく応用する自信がないんですが(^-^;)
まあとりあえず我流ですけどお付き合いください。

ではその辺も踏まえてもらって次にボタンのクリック(イベント)にあわせて音が鳴るようにしたものを示します。
_____________________________________
#! 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にして実体を消してます。
そしてボタンに関するメソッドで「クリックしたら音が再生されるように設定しました。

oto_s2.jpg
(画面の見本です。実際には動きません)

どうでしょうか。
ところでループ再生のうまいやり方を教えてほしいです(^-^;)

今回もどこか間違ってたら暖かいツッコミをお願いいたします。


人気ブログランキングに参加してます。
ポチッ!としてくださると嬉しいです。
にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村

 


posted by Hol_nice at 19:24| Comment(2) | TrackBack(0) | プログラム | 更新情報をチェックする
この記事へのコメント
Ruby,魅力的な言語です。
Posted by greenwind888 at 2012年01月25日 20:55
>greenwind888様

はじめまして。ようこそ(^-^)

最近プログラムを書けてないんですが、
とっつきやすくて、なんだか可能性も感じさせてくれる面白い言語なんですよね。

Posted by Hol_nice at 2012年01月25日 23:30
コメントを書く
コチラをクリックしてください

この記事へのトラックバック