Menu
CoddyTech

Berputar Kembali di Layar

Termasuk bagian Perulangan Game dalam perjalanan Pygame di Coddy. Pelajaran 22 dari 32.

Dalam banyak game luar angkasa, kapal atau batu yang keluar dari satu sisi layar akan muncul kembali di sisi lainnya. Ini disebut pembungkusan. Batu di sini bergerak perlahan ke atas dan ke kanan, lalu setelah beberapa detik, batu itu hilang selamanya.

Periksa setiap tepi setelah bergerak. Radius batu adalah 20, jadi biarkan batu benar-benar keluar dari pandangan sebelum berpindah: setelah melewati 480 + 20 di sisi kanan, batu muncul kembali di -20, di luar pandangan melewati tepi kiri, lalu meluncur masuk.

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

Hal yang sama berlaku untuk y berdasarkan tinggi layar: setelah melewati 380 di bagian bawah, batu muncul kembali di -20, dan setelah melewati -20 di bagian atas, batu muncul kembali di 380.

Hanya posisinya yang berpindah. Kecepatannya tetap, jadi batu terus bergerak ke arah yang sama setelah berpindah.

challenge icon

Tantangan

Mudah

Setelah pos += vel * dt, buat batu kembali ke sisi berlawanan:

  1. Di atas 500, pos.x menjadi -20; di bawah -20, nilainya menjadi 500.
  2. Di atas 380, pos.y menjadi -20; di bawah -20, nilainya menjadi 380.

Coba sendiri

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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Perulangan Game

Latihan sendiri: Playground Pygame