Menu
CoddyTech
flag Ar iconالعربيةdown icon

استدر باستخدام الأسهم

الدرس 21 من 40 في دورة اصنع ألعابًا باستخدام 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()
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

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

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