我目前正在努力显示一个font.draw元素的列表,这些元素将链接到鼠标左键向下。我已经将draw设置为如果按钮向下和mouse_x/y在正确的位置,但是一旦你停止按鼠标左键,它们就会消失,这是有道理的。
我想知道是否有一种方法可以在鼠标按下时设置/切换这些绘制,我一直在努力寻找任何资源或例子来展示这一点,这在本学期的工作中从未教授过。
这里是当前的代码设置到位;
def draw
music_file = File.new("albums.txt", "r")
albums = read_albums(music_file)
artworks = read_artworks(albums)
music_file.close()
@info_font.draw("mouse_x: #{mouse_x}", 0, 590, ZOrder::UI, 1.0, 1.0, Gosu::Color::BLACK) #debug
@info_font.draw("mouse_y: #{mouse_y}", 100, 590, ZOrder::UI, 1.0, 1.0, Gosu::Color::BLACK) #debug
draw_background()
draw_albums(albums)
drawtracks_main(albums) #this is the issue I'm trying to fix
end
def drawtracks_main(albums)
if (Gosu.button_down? Gosu::MsLeft and mouse_over_album1(mouse_x, mouse_y))
draw_tracks(albums[0].tracks) == true
end
end
个字符
我试过在button_down中切换到draw,但我注意到你实际上不能在button_down中 draw。否则我试过将draw设置为true,尝试给予一个值,但当然没有工作。
任何帮助都是巨大的!
1条答案
按热度按时间euoag5mw1#
所以在坐着盯着墙看了一个小时后,我意识到我应该使用gosu中内置的更新程序。
将
@draw_tracks_enabled
值初始化为false
,然后使用此;;字符串
把它变成
true
(或者false
,如果你要按下另一个要显示的项目)。然后你可以写一个简单的if@draw_tracks1_enabled == true
,然后画出轨道。