Menu
CoddyTech

Oklarla Dön

Coddy'nin Pygame ile Oyun Yap kursunda ders 21 / 41.

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

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 true olur ve TURNS[event.key] yeni yöndür. Tek bir kontrol, dört if ifadesinin yerini alır:

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

Yukarı yönü (0, -1) şeklindedir: satırlar, piksellerde olduğu gibi pencere boyunca aşağı doğru sayılır.

challenge icon

Görev

Kolay

Yılanı ok tuşlarıyla yönlendir.

  1. pygame.init() satırının üstüne dört ok 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 onun değeri olarak ayarla.

“Oyna” düğmesine bas ve Aşağı tuşuna bas: yılan aşağı döner. Ardından “Kontrol et” düğmesine bas.

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

Pygame ile Oyun Yap bölümündeki tüm dersler

Kendi başına pratik yap: Pygame playground