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 הוא 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()

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

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