Menu
CoddyTech

Selesaikan Permainanmu

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

Sekarang langkah 3 sampai 5: tantangan, bagian akhir, dan teks. Rock Dodge menggunakan satu ide yang belum kamu lihat, yaitu list Rects: sebuah batu baru setiap 400 ms, banyak batu sekaligus di layar.

rocks = []

# saat event timer NEW_ROCK terjadi:
rocks.append(pygame.Rect(random.randint(0, 450), -30, 30, 30))

# pada setiap frame:
for rock in rocks:
    rock.y += 5
    if rock.colliderect(player):
        state = "lost"
rocks = [rock for rock in rocks if rock.top < 360]

Baris terakhir adalah pemahaman list: list baru yang hanya berisi batu-batu yang masih berada di layar, sehingga list tidak terus bertambah selamanya.

String state, "playing", "lost", atau "won", menggantikan beberapa penanda. Dan pygame.time.get_ticks() memberikan jumlah milidetik sejak game dimulai, yang membuat sebuah timer: bertahanlah selama 20 detik untuk menang.

Buat gamemu jadi milikmu sendiri: ubah warna, kecepatan, dan aturannya. Lalu mainkan. Jika terlalu sulit untuk menang atau terlalu cepat kalah, ubah angkanya sampai permainan terasa menyenangkan.

challenge icon

Tantangan

Mudah

Selesaikan game-mu agar memiliki:

  1. Sesuatu yang bergerak sendiri.
  2. Teks di layar, seperti skor atau timer.
  3. Akhir permainan: cara untuk menang, cara untuk kalah, atau keduanya.

Pemeriksaan mencari teks, sesuatu yang bergerak tanpa tombol ditekan, game yang berjalan selama 30 detik tanpa error, dan jendela yang bisa ditutup. Selebihnya terserah kamu.

Coba sendiri

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Rock Dodge")
clock = pygame.time.Clock()

player = pygame.Rect(220, 320, 40, 20)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        player.x -= 7
    if keys[pygame.K_RIGHT]:
        player.x += 7
    player.clamp_ip(screen.get_rect())

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (80, 160, 255), player)
    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