Kreise, Linien, Vielecke
Teil des Abschnitts Die Spielschleife der Pygame-Journey von Coddy. Lektion 9 von 32.
Bisher hast du Rechtecke gezeichnet. pygame.draw bietet weitere Formen, und sie beginnen alle auf dieselbe Weise: mit der Fläche, auf der gezeichnet werden soll, dann mit der Farbe.
pygame.draw.circle(screen, (255, 196, 0), (100, 80), 30)
pygame.draw.line(screen, (240, 240, 240), (0, 200), (480, 200), 3)
pygame.draw.polygon(screen, (60, 200, 120), [(240, 40), (280, 120), (200, 120)])Ein Kreis benötigt seinen Mittelpunkt und seinen Radius. Anders als ein Rechteck wird er durch seine Mitte positioniert, nicht durch seine obere linke Ecke. Ein Radius von 30 ergibt einen Kreis mit einem Durchmesser von 60 Pixeln.
Eine Linie benötigt ihre beiden Endpunkte und zuletzt ihre Breite in Pixeln. Ohne angegebene Breite ist sie 1 Pixel dick.
Ein Vieleck benötigt eine Liste von Eckpunkten und füllt die Fläche zwischen ihnen aus, wobei der letzte Punkt mit dem ersten verbunden wird. Drei Punkte ergeben ein Dreieck, vier eine Raute.
Aufgabe
EinfachZeichne nach dem Füllen ein Segelboot auf dem Meer:
- Die Sonne: ein gelber Kreis
(255, 196, 0)mit Mittelpunkt bei(380, 80)und Radius40. - Das Meer: eine blaue Linie
(80, 160, 255)von(0, 280)bis(480, 280),4Pixel dick. - Das Segel: ein rotes Polygon
(235, 80, 80)mit den Ecken(240, 120),(240, 250)und(160, 250).
Probier es selbst
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Sailboat")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
# zeichne hier die Sonne, das Meer und das Segel
pygame.display.flip()
clock.tick(60)
pygame.quit()
Alle Lektionen in Die Spielschleife
2Formen und Farben
Kreise, Linien, VieleckeUmrisse und EckenEine Szene aus FormenFarben, die sich ändernÜbe selbstständig: Pygame-Playground