1

我正在尝试在 Windows 上用 Ruby(2.2.6 版)编写一个简单的游戏。我安装了 Gosu gem 来处理音频,并且我有一个想要播放的配乐文件:

@soundtrack = Gosu::Song.new("theme.ogg")

我不能使用 Sample,因为我需要能够暂停。

 def play_soundtrack
    @soundtrack.play(looping = true)
  end

  def pause_soundtrack
    print "Paused "
    @soundtrack.pause
  end

运行它只会播放主题的第一个音符,然后不会播放任何声音。Gosu::Sample 仍然可以正常工作,所以我不确定我使用 Gosu::Song 会出现什么问题。

4

1 回答 1

0

这在 Gosu 现在是不可能的,Song#play没有窗口就行不通。因为 Gosu 不使用后台线程来播放音频,所以Song::update()需要定期调用一个内部方法来保持歌曲播放。Gosu::Window#show 每滴答声执行一次。无法从 Ruby 中直接调用此方法。唯一的解决方法是在播放音频时显示一个小窗口。

我已经打开了一个 GitHub 问题,因为这应该被记录或修复。

于 2017-03-26T21:28:22.637 回答