Menu
CoddyTech

انعطف باستخدام الأسهم

جزء من قسم المشاريع في رحلة Pygame على Coddy. الدرس 3 من 31.

يلتفّ الثعبان مرة واحدة لكل ضغطة مفتاح، لذا اقرأ الأسهم من أحداث KEYDOWN. يربط القاموس كل مفتاح سهم باتجاهه:

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 صحيحة للأسهم الأربعة، وTURNS[event.key] هو الاتجاه الجديد. يحل اختبار واحد محل أربع عبارات if:

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

الاتجاه إلى الأعلى هو (0, -1): تتناقص أرقام الصفوف باتجاه أسفل النافذة، مثل وحدات البكسل.

challenge icon

التحدي

سهل
  1. فوق pygame.init()، أضف قاموس TURNS للأسهم الأربعة.
  2. في حلقة الأحداث، عندما يكون مفتاح حدث KEYDOWN موجودًا في TURNS، عيّن direction إلى قيمته.

جرّب بنفسك

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

جميع دروس المشاريع

تدرّب بنفسك: Playground لـ Pygame