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.
Tantangan
Mudah- Di atas
pygame.init(), tambahkan dictionaryTURNSuntuk keempat tombol panah. - Dalam perulangan peristiwa, saat tombol pada peristiwa
KEYDOWNada diTURNS, aturdirectionke 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()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Buat Game dengan Pygame
3Grid dan List
Grid SelLangkah demi LangkahLatihan sendiri: Playground Pygame