Menu
CoddyTech

Berbelok dengan Tombol Panah

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

Ular berbelok sekali setiap tombol ditekan, jadi baca tombol panah dari peristiwa KEYDOWN. dictionary memetakan setiap tombol panah ke arahnya:

TURNS = {
    pygame.K_LEFT: (-1, 0),
    pygame.K_RIGHT: (1, 0),
    pygame.K_UP: (0, -1),
    pygame.K_DOWN: (0, 1),
}

event.key in TURNS bernilai true untuk keempat tombol panah, dan TURNS[event.key] adalah arah yang baru. Satu pengujian menggantikan empat pernyataan if:

elif event.type == pygame.KEYDOWN and event.key in TURNS:
    direction = TURNS[event.key]

Arah atas adalah (0, -1): baris dihitung turun di jendela, seperti piksel.

challenge icon

Tantangan

Mudah
  1. Di atas pygame.init(), tambahkan dictionary TURNS untuk keempat tombol panah.
  2. Dalam perulangan peristiwa, saat tombol pada peristiwa KEYDOWN ada di TURNS, atur direction ke nilainya.

Coba sendiri

import pygame

CELL = 20
COLS, ROWS = 24, 18

pygame.init()
screen = pygame.display.set_mode((COLS * CELL, ROWS * CELL))
pygame.display.set_caption("Snake")
clock = pygame.time.Clock()


def draw_cell(cell, color):
    col, row = cell
    pygame.draw.rect(screen, color, (col * CELL + 1, row * CELL + 1, CELL - 2, CELL - 2))


head = (5, 9)
direction = (1, 0)

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

    head = (head[0] + direction[0], head[1] + direction[1])

    screen.fill((30, 30, 46))
    draw_cell(head, (180, 255, 160))
    pygame.display.flip()
    clock.tick(10)

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