Menu
CoddyTech
flag He 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 הוא true עבור ארבעת החצים, ו-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()
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יוצרים משחקים עם Pygame

תרגלו בעצמכם: Pygame אונליין