Menu
CoddyTech

Ok Tuşlarıyla Dön

Coddy'nin Pygame Journey'sinin Projeler bölümünün bir parçası. Ders 3 / 31.

Yılan her tuş basışında bir kez döner; bu nedenle ok tuşlarını KEYDOWN olaylarından oku. Bir sözlük, her ok tuşunu yönüyle eşleştirir:

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 dört ok tuşu için doğrudur ve TURNS[event.key] yeni yöndür. Tek bir test, dört if ifadesinin yerini alır:

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

Yukarı, (0, -1) şeklindedir: satırların sayısı, piksellerde olduğu gibi, pencere boyunca azalır.

challenge icon

Görev

Kolay
  1. pygame.init() satırının üstüne, dört yön tuşu için TURNS sözlüğünü ekle.
  2. Olay döngüsünde, bir KEYDOWN olayının tuşu TURNS içindeyse direction değerini buna ayarla.

Kendin dene

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()

Projeler bölümündeki tüm dersler

Kendi başına pratik yap: Pygame playground