[英]What would be an easier way to update a Pygame display?
我最近尝试自学 Python 并使用 Pygame 制作了一个应用程序来为 D 和 D 敌人生成随机统计数据。 2个问题。 单击按钮后更新 Pygame 显示会是更清洁或更好的解决方案吗? 因为目前我有循环在每次点击后重新定义主要的 window 变量,以试图让统计信息留在显示屏上。
if zombie.isOver(pos):
win.fill((255, 255, 255))
menu.draw(win, (0, 0, 0))
Zombie()
pygame.display.update()
x -= 1
def drawWindow():
again.draw(win, (0, 0, 0))
按下按钮后,这将被重新定义。
def drawWindow():
win.fill((255, 255, 255))
bandit.draw(win, (0, 0, 0))
zombie.draw(win, (0, 0, 0))
rat.draw(win, (0, 0, 0))
我这样做是因为 win.fill 会掩盖打印的值,我无法让它们以任何其他方式保持不变。
第二个问题是当我在显示器中混合按钮时,3 个当前按钮中有 2 个工作正常,但是第 3 个按钮的值结巴并且不像其他 2 个那样平滑。我认为这是由值的位置引起的在代码中,它们是我添加的最后一个,将它们放在代码中,但老实说我不知道。
if rat.isOver(pos):
win.fill((255, 255, 255))
menu.draw(win, (0, 0, 0))
Rat()
pygame.display.update()
x /= 2
def drawWindow():
again.draw(win, (0, 0, 0))
if again.isOver(pos) and x == 5:
win.fill((255, 255, 255))
menu.draw(win, (0, 0, 0))
again.draw(win, (0, 0, 0))
Rat()
pygame.display.update()
def drawWindow():
again.draw(win, (0, 0, 0))
该按钮与其他 2 个按钮的工作方式相同,但值口吃。 如果有人有帮助的想法,将不胜感激。 谢谢你。
好的,不确定我是否完全理解你是如何做到的,但是在主循环中,调用drawWindow()
。 这是:
def drawWindow():
win.fill((255, 255, 255))
bandit.draw(win, (0, 0, 0))
zombie.draw(win, (0, 0, 0))
rat.draw(win, (0, 0, 0))
我假设那是在绘制它们的图像而不是统计数据。 有一个布尔值来控制是否为每个人显示像show_zombie_stats
这样的统计数据。 然后在主循环或drawWindow()
中,您可以执行 if 语句,例如
if show_zombie_stats:
zombie.draw_stats()
然后在主循环结束时调用pygame.display.update()
。
现在您可以使用带有show_zombie stats = not show_zombie stats
的按钮更改show_zombie stats
信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.