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