動画再生
来るところまで来てしまいましたw
MyGameの親ライブラリと言えるSDLには、MPEGを再生させる機能が付いています
ただし、使用方法が少し複雑なのと、インタプリタ故の遅さが難点です
まあ、exeファイルに変換してしまえばそれまでですがw
MyGameの親ライブラリと言えるSDLには、MPEGを再生させる機能が付いています
ただし、使用方法が少し複雑なのと、インタプリタ故の遅さが難点です
まあ、exeファイルに変換してしまえばそれまでですがw
下準備
動画再生を行う前に、ある程度の準備(新出メソッドの勉強)が必要です
まずは順番に見ていきましょう
まずは順番に見ていきましょう
SDL.init(SDL::INIT_VIDEO|SDL::INIT_AUDIO)
initは初期化を表します
本来なら、動画の映像と音源のON/OFFの設定をしなければならないのですが、
これを使えば全てONで初期化してくれます
本来なら、動画の映像と音源のON/OFFの設定をしなければならないのですが、
これを使えば全てONで初期化してくれます
screen = SDL.setVideoMode(640, 480, 32, SDL::SWSURFACE)
右辺に注目して下さい
MyGameでは自動で行っていましたが、SDLではsetVideoModeでウィンドウを生成します
引数は左から横幅、縦幅、画面の色(ビット)、ウィンドウタイプです
ウィンドウタイプについては、後々説明する予定です
そして生成したウィンドウの情報を、screenに代入します
MyGameでは自動で行っていましたが、SDLではsetVideoModeでウィンドウを生成します
引数は左から横幅、縦幅、画面の色(ビット)、ウィンドウタイプです
ウィンドウタイプについては、後々説明する予定です
そして生成したウィンドウの情報を、screenに代入します
オブジェクトを作る
まずはいつも通り、MPEGのオブジェクトを作りましょう
mov = SDL::MPEG.load('パス名')
オブジェクト指向のページを見た人なら、ティーンと来たはずですwww
これは「SDLクラスの中のメンバ関数を呼び出す」と言う意味です
これは「SDLクラスの中のメンバ関数を呼び出す」と言う意味です
再生サイズを設定する
取り込んだ動画を再生させるには、再生サイズを設定する必要があります
とは言え、それほど難しくはありません
とは言え、それほど難しくはありません
mov.setDisplay(screen)
setDisplayで、動画オブジェクトの再生サイズを設定します
引数に先ほどのscreenを代入すれば、ウィンドウ全体で再生出来ます
引数に先ほどのscreenを代入すれば、ウィンドウ全体で再生出来ます
動画を再生させる
オブジェクトさえ出来れば、再生させるのは簡単です
mov.play
これでOK、簡単でしょ?
動画を止める
動画を途中で止めるには、次のメソッドを呼び出します
mov.stop
…あまりにも分かりやすいメソッドですw
exeにする
Rubyの弱点である遅さを克服するために、完成したファイルをexeにしましょう
ちなみに、今回は例としてhello.rbをexeに変換します
ちなみに、今回は例としてhello.rbをexeに変換します
mkexyファイルを作る
exeの前段階として、mkexyファイルを作成します
まずは、変換したいファイルのあるディレクトリ(フォルダ)でコマンドプロンプトを開きます
そこで次のように入力します
まずは、変換したいファイルのあるディレクトリ(フォルダ)でコマンドプロンプトを開きます
そこで次のように入力します
mkexy hello.rb
ファイルが実行されるので終了させます
するとhello.exyというファイルが作られます
するとhello.exyというファイルが作られます
プロンプトを開けさせない
exeに変換する前に、exyファイルをメモ帳なりで開きます
そこにある「core: cui」を「core: gui」に書き換えます
こうすると、exeファイルにして実行したときにプロンプト窓が開かなくなります
そこにある「core: cui」を「core: gui」に書き換えます
こうすると、exeファイルにして実行したときにプロンプト窓が開かなくなります
exe化
さて、色々準備も終わったところで、いよいよexeに変換です
もう一度プロンプトを開いて、以下を実行します
もう一度プロンプトを開いて、以下を実行します
exerb hello.exy
これでhello.exeが完成しました!
注意点
exeにしましたが、これだけでは動きません
「C:\Program Files\ruby-1.8\bin」内にあるdllファイルを
exeファイルのあるディレクトリの中にコピーする必要があります
また、文字列表示などをした場合は、
「C:\Program Files\ruby-1.8\share\mygame」内にあるフォントファイルもコピーしてください
「C:\Program Files\ruby-1.8\bin」内にあるdllファイルを
exeファイルのあるディレクトリの中にコピーする必要があります
また、文字列表示などをした場合は、
「C:\Program Files\ruby-1.8\share\mygame」内にあるフォントファイルもコピーしてください
このwikiの更新情報RSS