如果一个矩形离开屏幕,他的宽度和高度变成0,为什么?我该如何解决它?

问题描述 投票:0回答:1

我试图将一些矩形移出屏幕,当我这样做时,宽度和高度逐渐变小并停在 0 这是代码:

import pygame 
from pygame.locals import *
pygame.init()
clock = pygame.time.Clock()
finestra1 = pygame.display.set_mode((1000,600))
posizionenellalista=0  
l=[]
posizione=0
l.append(pygame.draw.rect(finestra1,(0,255,0), (50,50,100,200),0))
l.append(pygame.draw.rect(finestra1,(0,255,0), (300,50,100,200),0))
l.append(pygame.draw.rect(finestra1,(0,255,0), (600,50,100,200),0))
while True:
    finestra1.fill((0,0,0))
    posizione=0
    for x in l:
        l[posizione]=pygame.draw.rect(finestra1,(0,255,0) ,(x.x,x.y+(-1),x.width,x.height),0)
        posizione =posizione +1
    pygame.display.set_caption(str(l))
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
    pygame.display.update()`

我尝试用相应的(100,200)更改x.width和x.height,但它不起作用

python pygame rectangles
1个回答
0
投票

参见

pygame.draw.rect

...返回 一个包围已更改像素的矩形,如果未绘制任何内容,则边界矩形的位置将是给定矩形参数的位置,其宽度和高度将为 0。

解决方案:

在绘制之前创建

pygame.Rect

l[posizione] = pygame.Rect(x.x, x.y+(-1), x.width, x.height)
pygame.draw.rect(finestra1, (0,255,0), l[posizione], 0)
© www.soinside.com 2019 - 2024. All rights reserved.