Menu
CoddyTech

Oklarla Dön

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

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
  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, KEYDOWN olayının tuşu TURNS içindeyse direction değerini bu tuşun karşılığı olarak 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()
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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

Kendi başına pratik yap: Pygame playground