Python Pygame更新显示

2024-04-25 22:39:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在与pygame合作,试图制作一个视觉21点游戏。我在附近看了一个小时左右,似乎找不到符合我要求的东西。我需要更新显示(在我的代码中命名为screen),以便用户可以轻松地浏览菜单。下面的函数是我读过的所有函数的产物,当使用必要的按钮应用和运行时,它只会在按住鼠标按钮的同时更改“21点爆炸”文本的颜色。你知道吗

def update_window():
      textsurface = Font1.render('BlackJack Blast!', True, e_m_lighter)
      screen.blit(textsurface,(106,100))
      pygame.display.update()

有没有人能帮我一个忙,怎样用一个按钮就可以让显示器永久更新?你知道吗


Tags: 函数代码用户游戏菜单update视觉鼠标
1条回答
网友
1楼 · 发布于 2024-04-25 22:39:15

我看不到你的代码,所以我会即兴创作。你知道吗

您必须使用变量,它会记住您单击了buttom(即clicked = False),并将代码分成两部分-第一部分将更改clicked,第二部分将根据clicked中的值绘制不同的按钮

# 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()

相关问题 更多 >