Eine Szene aus Formen
Teil des Abschnitts Die Spielschleife der Pygame-Journey von Coddy. Lektion 11 von 32.
Ein Bild in einem Spiel besteht oft aus vielen kleinen Formen. Ein Baum besteht hier aus einem braunen Stamm mit einem grünen Kreis oben drauf. Zeichne mehrere davon, und du hast einen Wald.
Wenn dieselbe Gruppe von Formen mehr als einmal vorkommt, packe sie in eine Funktion, die die Position entgegennimmt. Jeder Aufruf zeichnet einen Baum:
def draw_tree(x, y):
pygame.draw.rect(screen, (120, 80, 40), (x - 5, y, 10, 30))
pygame.draw.circle(screen, (60, 170, 90), (x, y), 20)
draw_tree(80, 250)
draw_tree(240, 250)Jede Form in der Funktion wird anhand von x und y positioniert. Einen Baum zu verschieben bedeutet also, einen Aufruf zu ändern.
Die Reihenfolge innerhalb der Funktion ist weiterhin wichtig. Der Stamm beginnt in der Mitte des Kreises, und der Kreis wird als Zweites gezeichnet, sodass er den oberen Teil des Stamms verdeckt. Vertausche die beiden Zeilen, und der Stamm scheint durch die Blätter hindurch.
Aufgabe
Einfach- Zeichne in
draw_treenach dem Stamm die Krone: einen grünen Kreis(60, 170, 90)mit Mittelpunkt(x, y)und Radius20. - Rufe es unter
draw_tree(80, 250)noch zweimal auf, für Bäume bei(240, 250)und(400, 250).
Probier es selbst
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Forest")
clock = pygame.time.Clock()
def draw_tree(x, y):
pygame.draw.rect(screen, (120, 80, 40), (x - 5, y, 10, 30))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
pygame.draw.circle(screen, (240, 240, 210), (70, 60), 24)
pygame.draw.rect(screen, (40, 90, 50), (0, 280, 480, 80))
draw_tree(80, 250)
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