Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach

Zeichne nach dem Füllen ein Segelboot auf dem Meer:

  1. Die Sonne: ein gelber Kreis (255, 196, 0) mit Mittelpunkt bei (380, 80) und Radius 40.
  2. Das Meer: eine blaue Linie (80, 160, 255) von (0, 280) bis (480, 280), 4 Pixel dick.
  3. 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

Übe selbstständig: Pygame-Playground