Gosu::Song 在 Ruby 只演奏第一个音符
Gosu::Song in Ruby only playing first note
我正在尝试在 Windows 上用 Ruby(版本 2.2.6)编写一个简单的游戏。我安装了 Gosu gem 来处理音频,我有一个我想播放的配乐文件:
@soundtrack = Gosu::Song.new("theme.ogg")
我不能使用示例,因为我需要能够暂停。
def play_soundtrack
@soundtrack.play(looping = true)
end
def pause_soundtrack
print "Paused "
@soundtrack.pause
end
运行这只会播放主题的第一个音符,然后不会播放任何声音。 Gosu::Sample 仍然可以正常工作,所以我不确定我使用 Gosu::Song.
有什么问题
Gosu 目前无法做到这一点,Song#play
没有 window 就无法工作。因为 Gosu 不使用后台线程播放音频,所以有一个内部方法 Song::update()
需要定期调用以保持歌曲播放。 Gosu::Window#show
does this once per tick。无法直接从 Ruby 调用此方法。唯一的解决方法是在播放音频时显示一个微小的 window。
我已经打开 a GitHub issue 因为这应该被记录或修复。
我正在尝试在 Windows 上用 Ruby(版本 2.2.6)编写一个简单的游戏。我安装了 Gosu gem 来处理音频,我有一个我想播放的配乐文件:
@soundtrack = Gosu::Song.new("theme.ogg")
我不能使用示例,因为我需要能够暂停。
def play_soundtrack
@soundtrack.play(looping = true)
end
def pause_soundtrack
print "Paused "
@soundtrack.pause
end
运行这只会播放主题的第一个音符,然后不会播放任何声音。 Gosu::Sample 仍然可以正常工作,所以我不确定我使用 Gosu::Song.
有什么问题Gosu 目前无法做到这一点,Song#play
没有 window 就无法工作。因为 Gosu 不使用后台线程播放音频,所以有一个内部方法 Song::update()
需要定期调用以保持歌曲播放。 Gosu::Window#show
does this once per tick。无法直接从 Ruby 调用此方法。唯一的解决方法是在播放音频时显示一个微小的 window。
我已经打开 a GitHub issue 因为这应该被记录或修复。