Menu
CoddyTech

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 = 500

O 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.

challenge icon

Desafio

Fácil

Depois de pos += vel * dt, faça a rocha reaparecer do outro lado:

  1. Acima de 500, pos.x passa a ser -20; abaixo de -20, passa a ser 500.
  2. Acima de 380, pos.y passa 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()
quiz iconTeste seus conhecimentos

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