Этот код первоначально предназначался для ввода пользователем, однако я хочу, чтобы он произвольно создавал многоугольник, а не вручную сам выбирал очки.
Я, скорее всего, сделаю цикл 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()
Что я пытаюсь сделать, это сделать рандомизатор координатной точки.
По какой-то причине он несовместим с этим кодом. Я пробовал и другие вещи, и остатки этих попыток могут быть видны.
Сегмент I изменен с for event in pygame.event.get
на screen.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
.
'point' является' int', а не '2-item sequence' ... что смущает об этом? –
Это очень очевидно, но (из-за серьезной нужности) я не совсем понимаю, как сделать последовательность из 2 предметов. Возможно, что-то пропустил в чтении. – Ben
Просто подумайте, что на самом деле делает «за точку в точках». Итерирование по списку. И возврат одного элемента, потому что вы использовали 'points =', а не 'points + =' –