Menu
CoddyTech

Zawijanie ekranu

Część sekcji Pętla gry ścieżki Pygame w Coddy. Lekcja 22 z 32.

W wielu grach kosmicznych statek lub skała, które wylatują z jednej strony ekranu, pojawiają się po drugiej stronie. To zawijanie. Skała tutaj dryfuje w górę i w prawo, a po kilku sekundach znika na dobre.

Po przesunięciu sprawdź każdą krawędź. Promień skały wynosi 20, więc pozwól jej całkowicie zniknąć z pola widzenia, zanim przeskoczy: po przekroczeniu 480 + 20 z prawej strony pojawia się przy -20, poza polem widzenia za lewą krawędzią, i wsuwa się na ekran.

if pos.x > 500:
    pos.x = -20
if pos.x < -20:
    pos.x = 500

To samo dotyczy osi y i wysokości: po przekroczeniu 380 przy dolnej krawędzi skała pojawia się przy -20, a po znalezieniu się powyżej -20 pojawia się przy 380.

Przeskakuje tylko pozycja. Prędkość pozostaje taka sama, więc po zawinięciu skała nadal dryfuje w tym samym kierunku.

challenge icon

Wyzwanie

Łatwy

Po pos += vel * dt spraw, by skała zawijała się na krawędzi:

  1. Powyżej 500 wartość pos.x zmienia się na -20; poniżej -20 zmienia się na 500.
  2. Powyżej 380 wartość pos.y zmienia się na -20; poniżej -20 zmienia się na 380.

Spróbuj swoich sił

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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Pętla gry

Poćwicz samodzielnie: Edytor online Pygame