استدر باستخدام الأسهم
الدرس 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): تزداد أرقام الصفوف تنازليًا باتجاه أسفل النافذة، كما هو الحال مع وحدات البكسل.
التحدي
سهل- أضف قاموس
TURNSللأسهم الأربعة قبلpygame.init(). - في حلقة الأحداث، عندما يكون مفتاح حدث
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
3الشبكات والقوائم
شبكة من الخلاياخطوة بخطوةتدرّب بنفسك: Playground لـ Pygame