Tetap di Layar
Pelajaran 7 dari 40 dalam kursus Buat Game dengan Pygame di Coddy.
Tahan tombol Right cukup lama, lalu persegi akan keluar dari jendela. Agar persegi tetap berada di dalam, batasi x dan y setelah kamu mengubah nilainya.
min(a, b) menghasilkan angka yang lebih kecil dan max(a, b) menghasilkan angka yang lebih besar. Jika digabungkan, keduanya menjaga angka di antara dua batas:
x = max(0, min(x, 480 - 40))min(x, 440) mencegah x melewati 440, dan max(0, ...) mencegahnya kurang dari 0. Mengapa 440, bukan 480? x adalah sisi kiri persegi, jadi sisi kanannya berada di x + 40. Pada 440, sisi kanan menyentuh tepi jendela.
Hal yang sama berlaku untuk y, dengan tinggi jendela.
Tantangan
MudahSetelah empat pemeriksaan tombol panah dan sebelum mengisi layar, pastikan persegi tetap berada di dalam jendela berukuran 480 kali 360: batasi x dari 0 hingga 440 dan y dari 0 hingga 320.
Coba sendiri
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()
x, y = 220, 160
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
speed = 4
if keys[pygame.K_SPACE]:
speed = 8
if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed
if keys[pygame.K_UP]:
y -= speed
if keys[pygame.K_DOWN]:
y += speed
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Buat Game dengan Pygame
1Perulangan Game
Buka JendelaIsi LatarLatihan sendiri: Playground Pygame