Man*_*ali 7 python pygame python-3.x
我正在使用 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)
Run Code Online (Sandbox Code Playgroud)
它有效,但由于我尝试创建的游戏是 3D 游戏,因此这种方法非常耗时。请告诉我 pygame 中是否有任何内置方法可以在矩形周围绘制边框。对不起我的英语不好。
您还可以将其放入函数中,并使用 for 循环使其更加简洁。首先,您会注意到您绘制的四个矩形采用了漂亮、简单的图案,因此您可以像这样压缩四个矩形的绘制:
pygame.draw.rect(surface, (0,0,255), (x,y,150,150), 0)
for i in range(4):
pygame.draw.rect(surface, (0,0,0), (x-i,y-i,155,155), 1)
Run Code Online (Sandbox Code Playgroud)
然后,因为 pygamedraw函数不需要在全局范围内运行,所以您可以将所有这些放入一个函数中:
def drawStyleRect(surface):
pygame.draw.rect(surface, (0,0,255), (x,y,150,150), 0)
for i in range(4):
pygame.draw.rect(surface, (0,0,0), (x-i,y-i,155,155), 1)
Run Code Online (Sandbox Code Playgroud)
然后,在你的主循环中,你所要做的就是运行:
while not done:
...
drawStyleRect(screen) # Or whatever you named the returned surface of 'pygame.display.set_mode()'
...
Run Code Online (Sandbox Code Playgroud)
如果您确实愿意,您甚至可以将绘图功能放在单独的模块中。