pygame.draw.rect()参数过多

3

我正在尝试在pygame中绘制带有圆角的空心矩形,这是我的代码:

pygame.draw.rect(screen,(0,0,0),(350,400,200,100),5,5)

错误提示为“TypeError:函数最多只接受4个参数(但给出了5个参数)”。

我想知道这是否与我使用的pygame版本有关,我使用的是pygame 1.9.6。我查看了pygame文档,并且文档显示我应该能够使用最多9个参数。


你关于参数数量是正确的。你确定这就是导致错误的那一行吗? - Mike67
2个回答

2
border_radius 参数仅在 PyGame 版本 2.0.0.dev8 中添加。
如果您使用的是旧版本的 PyGame,则可以通过在角落处绘制圆来执行此操作。
def drawRoundedRect( screen, rect, colour=(128,128,128), radius=7 ):
    x, y   = rect.topleft
    width  = rect.width
    height = rect.height
    pygame.draw.circle( screen, colour, ( x+radius, y+radius ), radius )                  # TL corner
    pygame.draw.circle( screen, colour, ( x+width-radius-1, y+radius ), radius )          # TR corner
    pygame.draw.circle( screen, colour, ( x+radius, y+height-radius-1 ), radius )         # BL corner
    pygame.draw.circle( screen, colour, ( x+width-radius-1, y+height-radius-1 ), radius ) # BR corner
    # In-fill
    pygame.draw.rect( screen, colour, ( x+radius, y, width-(2*radius), height ) )
    pygame.draw.rect( screen, colour, ( x, y+radius, width, height-(2*radius) ) )

1

实际上,这个帖子已经回答了这个问题。基本上,border_radius是在您使用的较早版本中添加的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接