Erreiche das Ziel
Teil des Abschnitts Die Spielschleife der Pygame-Journey von Coddy. Lektion 8 von 32.
Ein Spiel braucht ein Ziel. Zeichne ein grünes Quadrat in die untere rechte Ecke. Wenn das Quadrat des Spielers hineingelangt, gewinnt der Spieler.
Das Ziel befindet sich bei (420, 300) und ist 60 mal 60 groß. Das Quadrat des Spielers befindet sich darin, wenn seine linke Seite bei 420 oder weiter rechts und seine obere Seite bei 300 oder weiter unten ist. Beides muss zutreffen, also verknüpfe die Bedingungen mit and.
Der Gewinnzustand muss bestehen bleiben. Speichere ihn in einer Variablen, die mit False beginnt und nur True werden kann:
won = False
while running:
# Bewege das Quadrat
if x >= 420 and y >= 300:
won = True
if won:
screen.fill((40, 110, 70))
else:
screen.fill((30, 30, 46))Sobald won den Wert True hat, wird nichts mehr auf einen anderen Wert gesetzt. Deshalb bleibt der Hintergrund grün, selbst wenn das Quadrat das Ziel verlässt.
Aufgabe
Einfach- Setze vor der Schleife
won = False. - Nachdem du
xundybegrenzt hast, setzewon = True, wennx >= 420undy >= 300. - Fülle den Bildschirm mit
(40, 110, 70), wennwonwahr ist, und andernfalls mit(30, 30, 46). - Zeichne vor dem Quadrat des Spielers das Ziel: Grün
(60, 200, 120)bei(420, 300, 60, 60).
Probier es selbst
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()
x, y = 220, 160
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
speed = 4
if keys[pygame.K_SPACE]:
speed = 8
if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed
if keys[pygame.K_UP]:
y -= speed
if keys[pygame.K_DOWN]:
y += speed
x = max(0, min(x, 480 - 40))
y = max(0, min(y, 360 - 40))
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Die Spielschleife
1Bewege ein Quadrat
Öffne ein FensterFülle den HintergrundÜbe selbstständig: Pygame-Playground