Dieser Code wurde ursprünglich für die Benutzereingabe gedacht, ich möchte jedoch, dass er zufällig ein Polygon erstellt, anstatt manuell Punkte auszuwählen.
Ich mache es wahrscheinlich eine for-Schleife, anstatt eine while-Schleife, so dass Sie nicht erwähnen müssen.Erstellen eines Zufallskoordinatengenerators
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()
Was ich versuche zu tun ist, um einen Koordinatenpunkt Randomizer zu machen.
Allerdings ist es aus irgendeinem Grund nicht mit diesem Code kompatibel. Ich habe auch andere Dinge ausprobiert, und Reste dieser Versuche können sichtbar sein.
Das von mir geänderte Segment geht von for event in pygame.event.get
zu screen.fill((255,255,255))
.
Der ursprüngliche Code war so:
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))
Wenn ich das Programm laufen, ich einen Bericht
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
Fehler.
'Punkt' ist eine' int', keine '2-Item-Sequenz' ... was ist daran verwirrend? –
Soviel ist offensichtlich, aber ich verstehe nicht genau, wie man eine 2-Item-Sequenz macht (wegen schwerer Noobnität). Wahrscheinlich etwas in der Lesung verpasst. – Ben
Denken Sie nur darüber nach, was 'for point in points' eigentlich macht. Iterieren über eine Liste. Und ein einzelnes Element zurückgeben, weil Sie 'points =' anstelle von 'point + =' –