Menu
CoddyTech

And, or

Fa parte della sezione Python in una finestra di gioco del percorso Pygame di Coddy. Lezione 13 di 32.

or unisce due condizioni ed è vero quando almeno una delle due è vera. and è vero solo quando sono vere entrambe.

if keys[pygame.K_LEFT] or keys[pygame.K_a]:
    moon_x = moon_x - 4
if keys[pygame.K_RIGHT] and moon_x < 580:
    moon_x = moon_x + 4

Il primo if sposta la luna a sinistra mentre si tiene premuto Left o A: funziona uno dei due tasti. Il secondo la sposta a destra solo mentre si tiene premuto Right e la luna si trova a sinistra di x 580, quindi si ferma prima del bordo della finestra.

not trasforma True in False: not keys[pygame.K_LEFT] è vero mentre Left non è premuto.

challenge icon

Sfida

Medio

Modifica i due controlli dei tasti:

  1. Tenendo premuto A, la luna si sposta anche a sinistra, come con il tasto Sinistra. Usa or.
  2. Il tasto Destra sposta la luna solo mentre moon_x < 580, quindi si ferma a x 580. Usa and.

Provalo tu

import pygame

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

# Imposta tutto qui, prima del ciclo di gioco.
moon_x = 320
moon_y = 240

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

    # Apporta le modifiche qui, una volta per fotogramma.
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        moon_x = moon_x - 4
    if keys[pygame.K_RIGHT]:
        moon_x = moon_x + 4

    screen.fill((20, 24, 48))
    # Disegna qui, dopo aver riempito lo schermo.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Tutte le lezioni di Python in una finestra di gioco

Esercitati da solo: Playground Pygame