gpt4 book ai didi

python - Pygame:绘制矩形的边框

转载 作者:行者123 更新时间:2023-12-03 23:47:14 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Pygame is running slow

(1 个回答)


去年关闭。




我正在使用 pygame 创建一个 3d 乒乓球游戏。我想为矩形添加一个厚厚的黑色边框层,使其更时尚。这是我尝试过的:

pygame.draw.rect(screen, (0,0,255), (x,y,150,150), 0)
pygame.draw.rect(screen, (0,0,0), (x-1,y-1,155,155), 1)
pygame.draw.rect(screen, (0,0,0), (x-2,y-2,155,155), 1)
pygame.draw.rect(screen, (0,0,0), (x-3,y-3,155,155), 1)
pygame.draw.rect(screen, (0,0,0), (x-4,y-4,155,155), 1)

它有效,但由于我尝试创建的游戏是 3d 游戏,因此这种方法很耗时。请告诉我 pygame 中是否有任何内置方法可以在矩形周围绘制边框。对不起我的英语不好。

最佳答案

创建一个函数来创建 pygame.Surface 对象具有每像素 alpha ( SRCALPHA ) 并在表面上绘制矩形和边框:

def create_rect(width, height, border, color, border_color):
surf = pygame.Surface((width+border*2, height+border*2), pygame.SRCALPHA)
pygame.draw.rect(surf, color, (border, border, width, height), 0)
for i in range(1, border):
pygame.draw.rect(surf, border_color, (border-i, border-i, width+5, height+5), 1)
return surf

在主应用程序循环和 blit 之前创建所有表面他们在循环中:

rect_surf1 = create_rect(150, 150, 5, (0, 0, 255), (0, 0, 0))
# [...]

run = True
while run:

# [...]

screen.blit(rect_surf1, (x, y))

# [...]

关于python - Pygame:绘制矩形的边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61951026/

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