#!ruby -Ks # -*- mode: ruby; encoding: sjis -*- # Last updated: <2014/12/24 10:15:23 +0900> # require 'dxruby' require_relative 'ayame' if true bgm_intro = Ayame.new('test58intro.ogg') bgm_loop = Ayame.new('test58loop.ogg') bgm_intro_time = 6.888 else bgm_intro = Ayame.new('test59intro.ogg') bgm_loop = Ayame.new('test59loop.ogg') bgm_intro_time = 13.714 end bgm_intro.predecode bgm_loop.predecode intro_time = 0 bgm_step = 0 # BGM処理用スレッド t = Thread.new do loop do case bgm_step when 0 # イントロ再生開始の指示待ち nil when 1 # イントロ再生開始 bgm_intro.play(1, 0) intro_time = Time.now.to_f bgm_step = 2 when 2 # イントロ再生終了待ち if intro_time + bgm_intro_time < Time.now.to_f # loop BGM 再生開始 bgm_loop.play(0, 0) bgm_step = 3 end when 3 # loop BGM再生中 nil when 4 # loop BGM停止 bgm_loop.stop(1) bgm_step = 0 when 5 break end Ayame.update sleep(0.001) end bgm_intro.stop bgm_intro.dispose bgm_loop.stop bgm_loop.dispose end fnt = Font.new(24) Window.loop do break if Input.keyPush?(K_ESCAPE) if Input.keyPush?(K_Z) if bgm_step <= 0 # BGMを再生していないので、イントロ再生開始 bgm_step = 1 elsif bgm_step == 3 # loop BGM 再生中なので停止する bgm_step = 4 end end if bgm_step >= 0 msg = [ "z : start intro", " intro play start", " intro playing", "z : stop loop bgm", " loop BGM stop" ] Window.drawFont(8, 8, msg[bgm_step], fnt) end end bgm_step = 5 t.join