Menu
CoddyTech

Ganze und halbe Zahlen

Teil des Abschnitts Python in einem Spielfenster der Pygame-Journey von Coddy. Lektion 9 von 32.

Python kennt zwei Arten von Zahlen. Eine int ist eine ganze Zahl: 3, -40, 640. Eine float hat ein Dezimaltrennzeichen: 0.5, 2.0, 107.25.

Ein Pixel pro Frame sind 60 Pixel pro Sekunde. Um die Bewegung zu verlangsamen, addiere einen Float:

moon_x = moon_x + 0.5

Jetzt nimmt moon_x die Werte 100, 100.5, 101.0, 101.5 an. pygame zeichnet auf ganzen Pixeln, daher bewegt sich der Mond alle zwei Frames um ein Pixel: eine langsame Drift von 30 Pixeln pro Sekunde.

Eine int-Zahl plus ein Float ergibt einen Float, und ein Float zeigt immer sein Dezimaltrennzeichen, zum Beispiel 101.0. int() wandelt einen Float in eine int-Zahl um, indem alles nach dem Dezimaltrennzeichen abgeschnitten wird:

int(101.5)   # 101
challenge icon

Aufgabe

Mittel

Lass den Mond langsam treiben:

  1. Füge im Änderungsteil in jedem Frame 0.5 zu moon_x hinzu.
  2. Zeige die Beschriftung als ganze Zahl an: f"Moon x: {int(moon_x)}".

Probier es selbst

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# Richte hier alles ein, bevor die Spielschleife beginnt.
moon_x = 100
moon_y = 200
font = pygame.font.Font(None, 36)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # Ändere hier die Werte einmal pro Frame.

    screen.fill((20, 24, 48))
    # Zeichne hier nach dem Füllen des Bildschirms.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
    text = font.render(f"Moon x: {moon_x}", True, (230, 230, 240))
    screen.blit(text, (20, 20))

    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 Python in einem Spielfenster

Übe selbstständig: Pygame-Playground