Tetap di Layar
Termasuk bagian Perulangan Game dalam perjalanan Pygame di Coddy. Pelajaran 7 dari 32.
Tahan Right cukup lama dan persegi akan keluar dari jendela. Agar tetap berada di dalamnya, batasi x dan y setelah kamu memindahkannya.
min(a, b) memberikan angka yang lebih kecil dan max(a, b) memberikan angka yang lebih besar. Keduanya bersama-sama menahan 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 pengisian, jaga agar 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()
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