我试图用Gosu做一个多项选择音乐播放器,但是我想要的图片和音乐不能初始化,尽管程序在运行,它显示黑屏。
require 'gosu'
require './input_functions'
class MW < Gosu::Window
def initialize
super 200, 135
@beth = Gosu::Image.new("media/beth.jpg")
@song = Gosu::Song.new("media/3rdmovement.mp3")
@song.play
end
def draw
@beth.draw(0, 0)
end
end
window = MW.new
window.show
但添加多项选择元素将不起作用(注意:read_integer_in_range是在输入函数中定义的,名称本身是自解释的)。完整代码:
require 'gosu'
require './input_functions'
class MW < Gosu::Window
def initialize
super 200, 135
@beth = Gosu::Image.new("media/beth.jpg")
@dimitri = Gosu::Image.new("media/dimitri.png")
@vil = Gosu::Image.new("media/vilva.png")
@song = Gosu::Song.new("media/3rdmovement.mp3")
@song2=Gosu::Song.new("media/2ndwaltz.mp3")
@song3=Gosu::Song.new("media/1stseason.mp3")
read_integer_in_range( "What song you want play
1st Spring
2nd Waltz
3rd movement", 1, 3)
choice = gets.chomp.to_i()
case choice
when 1
@song3.play
@vil.draw(0, 0)
when 2
@song2.play
@dimitri.draw(0, 0)
when 3
@song.play
draw_beth()
end
end
end
def draw_beth
@beth.draw(0, 0)
end
window = MW.new
window.show
所有的Png/Jpg和mp3文件工作得很好。
我试着把draw_beth
分开来调用case
,但是没有成功。我希望路过的人能帮助我解决这个问题
1条答案
按热度按时间bvuwiixz1#
正如我所看到的,您正在使用GUI创建一个音乐播放器,如果您正在这样做,您不应该使用gets函数,而是应该跟踪光标的位置并返回一个测试值;例如:
则可以在“button down ID”函数中使用case条件