使用列表在 pygame 中绘制多边形
Drawing polygons in pygame using list
我想画很多简单的多边形。所以我决定制作一个由所有多边形组成的元组,这样我就可以使用
for poly in POLYGONS
.
POLYGONS = (sc,(255,255,255),(0,50),ect.)
for poly in POLYGONS:
pygame.draw.polygon(poly)
但是当我实际这样做时,函数将这个元组作为第一个参数。有什么办法可以提高效率(没有 i[0]、i[1] 等等)?
我是一名初级程序员,所以这个问题听起来很明显。
您必须制作一个元组列表:
POLYGONS = [
((255, 0, 0), [(100, 50), (50, 150), [150, 150]], True),
((0, 0, 255), [(100, 150), (50, 50), [150, 50]], True)
]
并且您必须使用 asterisk (*) operator:
解压缩元组
for poly in POLYGONS:
pygame.draw.polygon(window, *poly)
最小示例:
import pygame
pygame.init()
window = pygame.display.set_mode((200, 200))
clock = pygame.time.Clock()
POLYGONS = [
((255, 0, 0), [(100, 50), (50, 150), [150, 150]], True),
((0, 0, 255), [(100, 150), (50, 50), [150, 50]], True)
]
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
window_center = window.get_rect().center
window.fill(0)
for poly in POLYGONS:
pygame.draw.polygon(window, *poly)
pygame.display.flip()
clock.tick(60)
pygame.quit()
exit()
我想画很多简单的多边形。所以我决定制作一个由所有多边形组成的元组,这样我就可以使用
for poly in POLYGONS
.
POLYGONS = (sc,(255,255,255),(0,50),ect.)
for poly in POLYGONS:
pygame.draw.polygon(poly)
但是当我实际这样做时,函数将这个元组作为第一个参数。有什么办法可以提高效率(没有 i[0]、i[1] 等等)? 我是一名初级程序员,所以这个问题听起来很明显。
您必须制作一个元组列表:
POLYGONS = [
((255, 0, 0), [(100, 50), (50, 150), [150, 150]], True),
((0, 0, 255), [(100, 150), (50, 50), [150, 50]], True)
]
并且您必须使用 asterisk (*) operator:
解压缩元组for poly in POLYGONS:
pygame.draw.polygon(window, *poly)
最小示例:
import pygame
pygame.init()
window = pygame.display.set_mode((200, 200))
clock = pygame.time.Clock()
POLYGONS = [
((255, 0, 0), [(100, 50), (50, 150), [150, 150]], True),
((0, 0, 255), [(100, 150), (50, 50), [150, 50]], True)
]
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
window_center = window.get_rect().center
window.fill(0)
for poly in POLYGONS:
pygame.draw.polygon(window, *poly)
pygame.display.flip()
clock.tick(60)
pygame.quit()
exit()