Avvolgersi ai bordi dello schermo
Fa parte della sezione Il game loop del percorso Pygame di Coddy. Lezione 22 di 32.
In molti giochi spaziali, un'astronave o una roccia che esce da un lato dello schermo ricompare dall'altro. Questo è il riavvolgimento. Qui la roccia si sposta verso l'alto e verso destra e, dopo qualche secondo, scompare per sempre.
Controlla ogni bordo dopo aver spostato la roccia. Il raggio della roccia è 20, quindi lascia che scompaia completamente prima che riappaia: superati 480 + 20 a destra, ricompare a -20, fuori vista oltre il bordo sinistro, e scivola dentro.
if pos.x > 500:
pos.x = -20
if pos.x < -20:
pos.x = 500Lo stesso vale per y rispetto all'altezza: superati 380 in basso, ricompare a -20; sopra -20, ricompare a 380.
Salta solo la posizione. La velocità rimane invariata, quindi la roccia continua a spostarsi nella stessa direzione dopo il riavvolgimento.
Sfida
FacileDopo pos += vel * dt, fai ricomparire la roccia dall'altro lato:
- Oltre 500,
pos.xdiventa -20; sotto -20, diventa 500. - Oltre 380,
pos.ydiventa -20; sotto -20, diventa 380.
Provalo tu
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Drifting Rock")
clock = pygame.time.Clock()
pos = pygame.Vector2(240, 180)
vel = pygame.Vector2(120, -70)
dt = 0
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pos += vel * dt
screen.fill((20, 20, 34))
pygame.draw.circle(screen, (150, 150, 160), pos, 20)
pygame.display.flip()
dt = clock.tick(60) / 1000
pygame.quit()
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Il game loop
1Muovi un quadrato
Apri una finestraRiempi lo sfondo4Muoversi nel tempo
Delta TimePixel al secondoVector2Accelerazione e attritoAvvolgersi ai bordi dello schermoEsercitati da solo: Playground Pygame