2016-02-23 59 views
0

我们可以在几行代码中绘制很多东西吗?我想尽快完成这项工作,但我做不到。在PyGame中绘制很多东西

这是代码:

def village_pointlist_creator(village_number, timer=0): 
    global pointlist 
    pointlist = [] 
    while (village_number + 1) != timer: 
     k = random.randrange(50, 551, 100) 
     p = random.randrange(50, 551, 100) 
     # we should check the points here. 
     pointlist.append((k, p)) 
     timer += 1 
    return pointlist 

def village_display(pointlist): 
    pygame.draw.circle(window, black, (pointlist[0][0], pointlist[0][1]), 25) 
    pygame.draw.circle(window, black, (pointlist[1][0], pointlist[1][1]), 25) 
    pygame.draw.circle(window, black, (pointlist[2][0], pointlist[2][1]), 25) 
    pygame.draw.circle(window, black, (pointlist[3][0], pointlist[3][1]), 25) 
    pygame.draw.circle(window, black, (pointlist[4][0], pointlist[4][1]), 25) 
    pygame.draw.circle(window, black, (pointlist[5][0], pointlist[5][1]), 25) 
    pygame.draw.circle(window, black, (pointlist[6][0], pointlist[6][1]), 25) 
    pygame.draw.circle(window, black, (pointlist[7][0], pointlist[7][1]), 25) 
    pygame.draw.circle(window, black, (pointlist[8][0], pointlist[8][1]), 25) 
    pygame.draw.circle(window, black, (pointlist[9][0], pointlist[9][1]), 25) 
    pygame.draw.circle(window, black, (pointlist[10][0], pointlist[10][1]), 25) 
    pygame.draw.circle(window, black, (pointlist[11][0], pointlist[11][1]), 25) 

所以,我想第二部分短。

回答

2

您可以尝试使用for循环复制pygame.draw.circle()代码,然后用for循环变量替换更改的参数。

def village_display(pointlist): 
    for i in range(12): 
     pygame.draw.circle(window, black, (pointlist[i][0], pointlist[i][1]), 25) 

我不知道这是你想要的,但它会工作!