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 = 500Hal 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.
Tantangan
MudahSetelah pos += vel * dt, buat batu kembali ke sisi berlawanan:
- Di atas 500,
pos.xmenjadi -20; di bawah -20, nilainya menjadi 500. - Di atas 380,
pos.ymenjadi -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()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Perulangan Game
1Gerakkan Persegi
Buka JendelaIsi Latar Belakang4Bergerak Berdasarkan Waktu
Delta WaktuPiksel per DetikVector2Percepatan dan GesekanBerputar Kembali di LayarLatihan sendiri: Playground Pygame