Capai Tujuan
Termasuk bagian Perulangan Game dalam perjalanan Pygame di Coddy. Pelajaran 8 dari 32.
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 posisi 420 atau lebih dan sisi atasnya berada di posisi 300 atau lebih. Keduanya harus benar, jadi gabungkan dengan and.
Kemenangan 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.
Tantangan
Mudah- Sebelum perulangan, tetapkan
won = False. - Setelah membatasi
xdany, tetapkanwon = Truesaatx >= 420dany >= 300. - Isi layar dengan
(40, 110, 70)saatwonbernilai true, dan dengan(30, 30, 46)jika tidak. - 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()
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