制作随机坐标生成器

时间:2016-09-12 20:32:20

标签: python random coordinates

此代码最初用于用户输入,但我希望它随机创建一个多边形,而不是自己手动选择点 我可能会把它变成for循环而不是while循环所以你不需要提及它。

import pygame
from pygame.locals import *
from sys import exit
import random
from random import *

pygame.init()
screen = pygame.display.set_mode((640, 480), 0, 32)
points = []


while True:

    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            exit()
        point1 = randint(0,639)
        point2 = randint(0,479)
        points = (str(randint(0,639)), str(randint(0,479)))

    screen.fill((255,255,255))

        if len(points) >= 3:
            pygame.draw.polygon(screen, (0,255,0), points)
        for point in points:
            pygame.draw.circle(screen, (0,0,255), point, 5)

            pygame.display.update()

我试图做的是制作一个坐标点随机数 但是,出于某种原因,它与此代码不兼容。我也试过其他的东西,这些尝试的残余可能是显而易见的 我更改的细分从for event in pygame.event.getscreen.fill((255,255,255)) 原始代码是这样的:

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
        pygame.quit()
        exit()

    if event.type == MOUSEBUTTONDOWN:
        points.append(event.pos)

    screen.fill((255,255,255))

当我运行程序时,我得到了一个

Traceback (most recent call last):
  File "H:/Documents/it/Python/manual_box drawer.py", line 26, in <module>
    pygame.draw.circle(screen, (0,0,255), point, 5)
TypeError: must be 2-item sequence, not int

错误报告。

1 个答案:

答案 0 :(得分:0)

我想这个

points = (str(randint(0,639)), str(randint(0,479)))

应该这样写(额外的逗号制作一个元组)。您需要附加到points列表,而不是重新分配变量。

points.append( (point1, point2,) )

然后你可以循环points并像你已经尝试的那样绘制它们。