2017-06-10 3 views
1

Ich versuche, eine Reihe von Rechtecken mit einer Koordinate zu zeichnen, die einfach eine Liste von x- und y-Werten ist.Zeichnungsform gegebene x- und y-Koordinaten pygame

Hier ist mein Code:

 
import pygame 

pygame.init() 

screen = pygame.display.set_mode((400, 400)) 

x = [5, 5, 4, 5] 
y = [2, 3, 4, 4] 


def draw(x, y): 
    block = 30 

    coord = zip(x, y) 

    for _x, _y in coord: 

     _x1 = _x * block 
     _y1 = _y * block 
     x2 = _x1 + block 
     y2 = _y1 + block 

     pygame.draw.rect(screen, 0xffffff, (_x1, _y1, x2, y2)) 


running = True 

while running: 

    for event in pygame.event.get(): 

     if event.type == pygame.QUIT: 
      running = False 
    draw(x, y) 
    pygame.display.flip() 

pygame.quit() 
quit() 

Dieser Code sollte eine Form ziehen, dass dies ähnelt:

 
0 
0 
00 

Stattdessen es Zeichnung etwas ohne zusammenhängende Form.

Antwort

1

Änderung dieser Zeile:

pygame.draw.rect(screen, 0xffffff, (_x1, _y1, x2, y2)) 

dazu:

pygame.draw.rect(screen, 0xffffff, (_x1, _y1, block, block)) 

draw.rect nimmt Rechteck als ein Argument, das durch (x, y, Breite, Höhe) angegeben

für _x1 = 5, _y1 = 2 Wenn Sie (_x1, _y1, x2, y2) tun, bedeutet dies (x=150, y=60, width=180, height=90)

+0

Das hat funktioniert! Würde es Ihnen etwas ausmachen, warum zu erklären? Ich bin neu in Pygame und es scheint, dass das Koordinatensystem anders ist. –

+0

in Antwort aktualisiert. Bitte klicken Sie auf OK, wenn Sie die Antwort gefunden haben. – digitake