Menu
CoddyTech

Berbelok dengan Tombol Panah

Termasuk bagian Proyek dalam perjalanan Pygame di Coddy. Pelajaran 3 dari 31.

Ular berbelok sekali setiap kali tombol ditekan, jadi baca panah dari event 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 mundur sepanjang jendela, seperti piksel.

challenge icon

Tantangan

Mudah
  1. Di atas pygame.init(), tambahkan dictionary TURNS untuk empat tombol panah.
  2. Dalam perulangan event, saat tombol pada event KEYDOWN terdapat 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()

Semua pelajaran di Proyek

Latihan sendiri: Playground Pygame