Menu
CoddyTech

Das Ziel erreichen

Lektion 8 von 40 im Kurs Spiele mit Pygame erstellen von Coddy.

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 höher und seine Oberkante bei 300 oder höher liegt. Beides muss zutreffen, also verbinde die Bedingungen mit and.

Der Gewinnzustand muss bestehen bleiben. Speichere ihn in einer Variable, die mit False beginnt und nur zu 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, setzt nichts ihn zurück. Deshalb bleibt der Hintergrund grün, selbst wenn das Quadrat das Ziel wieder verlässt.

challenge icon

Aufgabe

Einfach
  1. Setze vor der Schleife won = False.
  2. Nachdem du x und y begrenzt hast, setze won = True, wenn x >= 420 und y >= 300.
  3. Fülle den Bildschirm mit (40, 110, 70), wenn won wahr ist, und andernfalls mit (30, 30, 46).
  4. 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()
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Spiele mit Pygame erstellen

Übe selbstständig: Pygame-Playground