我正在使用pygame尝试制作一个可视化的Blackjack游戏。我过去一小时左右看了一眼,我似乎无法找到能满足我需要的东西。我需要更新显示(我的代码中的命名屏幕),以便用户可以轻松浏览菜单。下面的功能是我所读过的所有内容的产物,当应用并使用必要的按钮运行时,它只会改变" Blackjack Blast"按住鼠标按钮时发出文字。
def update_window():
textsurface = Font1.render('BlackJack Blast!', True, e_m_lighter)
screen.blit(textsurface,(106,100))
pygame.display.update()
任何人都可以提供任何帮助,了解如何只需按一下按钮即可永久更新显示屏吗?
答案 0 :(得分:0)
我无法看到你的代码,所以我会即兴创作。
你必须使用变量来记住你点击了按钮(即clicked = False
)并将代码分成两部分 - 一部分将改变clicked
,第二部分将根据clicked
中的值绘制不同的按钮{1}}
# set on start (before mainloop)
clicked = False
# executed when you click in button
def update_window():
global clicked
clicked = True
# in main loop when you draw button
if clicked
textsurface = Font1.render('BlackJack Blast!', True, e_m_lighter)
else:
textsurface = Font1.render('BlackJack Blast!', True, NORMAL_COLOR)
screen.blit(textsurface,(106,100))
pygame.display.update()
或者您可以使用变量来保持当前图像
# set on start (before mainloop)
normal_text = Font1.render('BlackJack Blast!', True, NORMAL_COLOR)
clicked_text = Font1.render('BlackJack Blast!', True, e_m_lighter)
current_text = normal_text
# executed when you click in button
def update_window():
global current_text
current_text = clicked_text
# in main loop when you draw button
screen.blit(current_text, (106,100))
pygame.display.update()