True czy False
Część sekcji Python w oknie gry ścieżki Pygame w Coddy. Lekcja 14 z 32.
True i False to samodzielne wartości, nazywane wartościami logicznymi. Zmienna może przechowywać jedną z nich, jak przełącznik:
lamp_on = FalseInstrukcja if może sprawdzać ją bezpośrednio: if lamp_on: wykonuje się, gdy zmienna ma wartość True. not odwraca tę wartość, więc lamp_on = not lamp_on przełącza lampę.
Przełącznik wymaga naciśnięcia klawisza, a nie jego przytrzymania. get_pressed() zwraca True w każdej klatce, gdy klawisz jest wciśnięty, więc lampa przełączałaby się 60 razy na sekundę. Naciśnięcie jest rejestrowane raz jako zdarzenie KEYDOWN w pętli zdarzeń na początku głównej pętli gry:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
lamp_on = not lamp_onSekcja 2 szczegółowo omawia zdarzenia. Na razie: event.type informuje, co się stało, a event.key — który klawisz.
Wyzwanie
ŚredniSpraw, aby klawisz spacji przełączał lampę:
- W części konfiguracji ustaw
lamp_on = False. - W pętli zdarzeń, gdy nadejdzie zdarzenie
KEYDOWNdlaK_SPACE, ustawlamp_on = not lamp_on. - Narysuj światło w punkcie
(320, 290), o promieniu 30:(255, 220, 100), gdylamp_onma wartość True, w przeciwnym razie(70, 70, 90).
Spróbuj swoich sił
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Przygotuj wszystko tutaj, przed pętlą gry.
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Zmieniaj rzeczy tutaj, raz na klatkę.
screen.fill((20, 24, 48))
# Rysuj tutaj, po wypełnieniu tła.
pygame.draw.rect(screen, (90, 90, 110), (310, 300, 20, 180))
pygame.draw.circle(screen, (70, 70, 90), (320, 290), 30)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Python w oknie gry
Poćwicz samodzielnie: Edytor online Pygame