gpt4 book ai didi

python - Pygame 绘制错误

转载 作者:行者123 更新时间:2023-12-01 02:14:06 24 4
gpt4 key购买 nike

我在运行我的 python 应用程序时遇到问题。

我制作了一些类(class)来让我的工作更轻松,你可以全部查看in this Github repo .

我的主要类(class)是:

from UI import *

window = Window(Size(1000, 700), "WiSync", "logo.png")

button1 = Button(Size(50, 30), Position(10, 10), UIThemes.light)
window.add(button1)

window.start()

它没有给我任何错误,但它只是没有绘制任何东西。我知道所有数据都没有问题,因为在我的抽屉类中我有一个 print() 调用:

def draw_rect(zone: Zone, color: Color, window: pygame.Surface):
print("Drawing rect " + zone.to_string() + " with color " + color.to_string())
pygame.draw.rect(window, color.get(), zone.get())

在我的应用程序循环中,有一条连续的消息:使用颜色 flat_light_sea_blue 绘制矩形区域(10, 10, 60, 40),但屏幕上没有显示任何内容。

抱歉,如果我说得不够清楚,但我是西类牙人,这很难解释。如果您还有其他疑问,请询问。

感谢您的帮助,您太棒了;)

最佳答案

问题是您没有在代码中的任何位置调用pygame.display.update()

您确实正在绘制这些矩形,但除非这条线位于您的主事件循环/主游戏循环中,否则它们不会在您的显示器上看到。

要解决此问题:

  • 完成所有绘制后,只需在主循环末尾添加行 pygame.display.update() 即可。

在你的仓库中,我查看了 UI.py 。在Window类的__main_loop方法中,当然没有需要的行pygame.display.update()

这是固定代码:

def __main_loop(self):
while self.running:
# Draw all the elements
for element in self.elements:
element.draw()

for event in pygame.event.get():
if event.type is pygame.QUIT:
self.running = False

pygame.display.update()

希望我的回答对您有所帮助,如果您还有其他问题,请随时在下面留言!

关于python - Pygame 绘制错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48503501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com