Menu
CoddyTech

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

الدرس 21 من 41 في دورة اصنع ألعابًا باستخدام Pygame على Coddy.

تنعطف الثعبان مرة واحدة مع كل ضغطة مفتاح، لذا اقرأ الأسهم من أحداث 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. أضف قاموس TURNS للأسهم الأربعة فوق pygame.init().
  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()

جميع دروس اصنع ألعابًا باستخدام Pygame

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