Menu
CoddyTech

Capai Tujuan

Pelajaran 8 dari 40 dalam kursus Buat Game dengan Pygame di Coddy.

Sebuah game membutuhkan tujuan. Gambar persegi hijau di sudut kanan bawah, dan saat persegi pemain masuk ke dalamnya, pemain menang.

Tujuannya berada di (420, 300) dan berukuran 60 kali 60. Persegi pemain berada di dalamnya saat sisi kirinya berada di 420 atau lebih dan sisi atasnya di 300 atau lebih. Keduanya harus benar, jadi gabungkan dengan and.

Kondisi menang harus bertahan. Simpan dalam variabel yang dimulai dengan False dan hanya berubah menjadi True:

won = False

while running:
    # gerakkan kotak
    if x >= 420 and y >= 300:
        won = True
    if won:
        screen.fill((40, 110, 70))
    else:
        screen.fill((30, 30, 46))

Setelah won bernilai True, tidak ada yang mengubahnya kembali, jadi latar belakang tetap hijau meskipun persegi keluar dari tujuan.

challenge icon

Tantangan

Mudah
  1. Sebelum perulangan, tetapkan won = False.
  2. Setelah membatasi x dan y, tetapkan won = True saat x >= 420 dan y >= 300.
  3. Isi layar dengan (40, 110, 70) saat won bernilai true, dan dengan (30, 30, 46) jika tidak.
  4. Sebelum menggambar persegi pemain, gambar tujuan: warna hijau (60, 200, 120) pada (420, 300, 60, 60).

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

    x = max(0, min(x, 480 - 40))
    y = max(0, min(y, 360 - 40))

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconUji dirimu

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

Semua pelajaran di Buat Game dengan Pygame

Latihan sendiri: Playground Pygame