Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pygame在可调整大小的窗口中绘制矩形的边框?_Python_Pygame_Drawrect_Window Resize_Pygame Surface - Fatal编程技术网

Python 如何使用pygame在可调整大小的窗口中绘制矩形的边框?

Python 如何使用pygame在可调整大小的窗口中绘制矩形的边框?,python,pygame,drawrect,window-resize,pygame-surface,Python,Pygame,Drawrect,Window Resize,Pygame Surface,我试图在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:

我试图在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),(0,0,surf.get_width(),surf.get_height()),10)
    pygame.display.update()


提前谢谢

在白色表面上绘制矩形(
surf
)。因此,您必须在
surf
上绘制它,然后才能在
win
上单击
surf

为True时:
# [...]
表面填充((255255))
pygame.draw.rect(surf,(255,0,0),(0,0,surf.get_width(),surf.get_height()),10)
win.blit(冲浪,(win_宽度/4,win_高度/4))
pygame.display.update()
或者,您可以直接在
win
上绘制矩形:

为True时:
# [...]
表面填充((255255))
rect=win.blit(冲浪,(win_宽度/4,win_高度/4))
pygame.draw.rect(赢,(255,0,0),rect,10)
pygame.display.update()

在白色表面上绘制矩形(
surf
)。因此,您必须在
surf
上绘制它,然后才能在
win
上单击
surf

为True时:
# [...]
表面填充((255255))
pygame.draw.rect(surf,(255,0,0),(0,0,surf.get_width(),surf.get_height()),10)
win.blit(冲浪,(win_宽度/4,win_高度/4))
pygame.display.update()
或者,您可以直接在
win
上绘制矩形:

为True时:
# [...]
表面填充((255255))
rect=win.blit(冲浪,(win_宽度/4,win_高度/4))
pygame.draw.rect(赢,(255,0,0),rect,10)
pygame.display.update()

您的代码似乎已经根据窗口的大小绘制了一个矩形。。。那么,你到底有什么问题?在运行这段代码时,我在屏幕上看到一个白色的矩形。然而,我打算用这个语句在矩形上画一个红色边框
pygame.draw.rect(surf,(255,0,0),(0,0,surf.get\u width(),surf.get\u height()),10)
您的代码似乎已经根据窗口大小绘制了一个矩形。。。那么,你到底有什么问题?在运行这段代码时,我在屏幕上看到一个白色的矩形。然而,我打算用这个语句在矩形上画一个红色边框
pygame.draw.rect(surf,(255,0,0),(0,0,surf.get\u width(),surf.get\u height()),10)
非常感谢!谢谢!