如何解决如何使用pygame在可调整大小的窗口中绘制矩形的边界?
我正在尝试在pygame中创建可调整大小的窗口,在该窗口中,带边框的矩形应与窗口成固定比例。
import pygame,sys
pygame.init()
win = pygame.display.set_mode((400,400),pygame.HWSURFACE | pygame.DOUBLEBUF | pygame.RESIZABLE)
while True:
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.VIDEORESIZE:
pygame.display.set_mode((event.w,event.h),pygame.HWSURFACE | pygame.DOUBLEBUF | pygame.RESIZABLE)
win_width,win_height = pygame.display.get_surface().get_size()
surf = pygame.Surface((round(win_width/2),round(win_height/2)))
surf.fill((255,255,255))
win.blit(surf,(win_width/4,win_height/4))
pygame.draw.rect(surf,(255,0),(0,surf.get_width(),surf.get_height()),10)
pygame.display.update()
谢谢!
解决方法
您在白色表面(surf
)上绘制矩形。因此,您必须先在surf
上涂破 surf
,然后在win
上绘制它:
while True:
# [...]
surf.fill((255,255,255))
pygame.draw.rect(surf,(255,0),(0,surf.get_width(),surf.get_height()),10)
win.blit(surf,(win_width/4,win_height/4))
pygame.display.update()
或者,您可以直接在win
上绘制矩形:
while True:
# [...]
surf.fill((255,255))
rect = win.blit(surf,win_height/4))
pygame.draw.rect(win,rect,10)
pygame.display.update()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。