Contornar a Tela
Parte da seção O loop do jogo do Journey de Pygame da Coddy. Lição 22 de 32.
Em muitos jogos espaciais, uma nave ou uma rocha que sai por um lado da tela reaparece do outro. Isso é wrap. A rocha aqui se desloca para cima e para a direita e, depois de alguns segundos, desaparece de vez.
Teste cada borda depois de mover. O raio da rocha é 20, então deixe que ela saia completamente de vista antes de reaparecer: depois de 480 + 20 à direita, ela volta em -20, fora de vista além da borda esquerda, e desliza para dentro.
if pos.x > 500:
pos.x = -20
if pos.x < -20:
pos.x = 500O mesmo vale para y com a altura: depois de 380 na parte inferior, ela volta em -20, e acima de -20 ela volta em 380.
Apenas a posição salta. A velocidade continua igual, então a rocha segue se deslocando na mesma direção depois de reaparecer do outro lado.
Desafio
FácilDepois de pos += vel * dt, faça a rocha reaparecer do outro lado:
- Acima de 500,
pos.xpassa a ser -20; abaixo de -20, passa a ser 500. - Acima de 380,
pos.ypassa a ser -20; abaixo de -20, passa a ser 380.
Experimente você mesmo
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()
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de O loop do jogo
Pratique por conta própria: Playground de Pygame