2017-03-02 5 views
0

Ich versuche, ein einfaches Spiel in Ruby (ver 2.2.6) unter Windows zu schreiben. Ich installierte die Gosu gem den Audio zu handhaben, und ich habe eine Soundtrack-Datei, die ich spielen möchte:Gosu :: Song in Ruby nur erste Note spielen

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

ich nicht Probe verwenden kann, weil ich zu pausieren müssen in der Lage sein.

Beim Abspielen wird nur die erste Note des Themas abgespielt, und dann wird kein Sound abgespielt. Gosu :: Sample funktioniert immer noch wie es sollte, also bin ich mir nicht sicher, was mit meiner Verwendung von Gosu :: Song falsch sein könnte.

+0

Verwenden Sie die Codeblock-Option (als geschweifte Klammern {} oben im Texteditor angezeigt, wenn Sie Ihre Frage eingeben), um die Codeteile in Ihren Fragen hervorzuheben. Das verbessert die Lesbarkeit Ihrer Fragen. –

+1

Danke für den Tipp, das war meine allererste Frage. –

+0

Vergnügen ist ganz auf meiner Seite –

Antwort

0

Dies ist mit Gosu momentan nicht möglich, Song#play funktioniert nicht ohne ein Fenster. Da Gosu keinen Hintergrund-Thread zum Abspielen von Audio verwendet, gibt es eine interne Song::update()-Methode, die regelmäßig aufgerufen werden muss, damit der Song wiedergegeben wird. Gosu::Window#showdoes this once per tick. Es gibt keine Möglichkeit, diese Methode direkt von Ruby aus aufzurufen. Die einzige Problemumgehung besteht darin, während der Audiowiedergabe ein kleines Fenster anzuzeigen.

Ich habe a GitHub issue geöffnet, weil dies entweder dokumentiert oder behoben werden sollte.