#!ruby # -*- mode: ruby; coding: utf-8 -*- # Last updated: <2016/12/13 19:44:06 +0900> # # gosuを使ってBGMが鳴らせるかテスト。 # # ちゃんとループしてくれない。ダメじゃん。 # # 動作確認環境: # Windows10 x64 + Ruby 2.2.6 p396 mingw32 + gosu 0.10.8 require 'gosu' class MyWindow < Gosu::Window def initialize super 320, 240, false self.caption = 'Song (BGM) Play Test' @fnt = Gosu::Font.new(20) # BGMのoggファイルを読み込む @bgm = Gosu::Song.new("tmp_loop01.ogg") @play_msg = "" @pause_msg = "" end def update # 再生中? if @bgm.playing? @play_msg = "Playing" else @play_msg = "Stopped" end # ポーズ中? if @bgm.paused? @pause_msg = "Paused" else @pause_msg = "Not Paused" end end def draw # 再生中/停止中, ポーズ中/非ポーズを表示 @fnt.draw("Push A:Play, Z:Stop, X:Pause", 4, 4, 0) @fnt.draw(@play_msg, 4, 30, 0) @fnt.draw(@pause_msg, 4, 50, 0) end def button_down(id) close if id == Gosu::KbEscape end # キーが離された時に呼ばれる def button_up(id) @bgm.play(true) if id == Gosu::KbA # 通常再生(ループ有効) @bgm.stop if id == Gosu::KbZ # 再生停止 @bgm.pause if id == Gosu::KbX # ポーズ end end window = MyWindow.new window.show