Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Setelah 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

Latihan sendiri: Playground Pygame