רשת של תאים
שיעור 19 מתוך 41 בקורס צרו משחקים עם Pygame של Coddy.
הנחש נע על גבי רשת. החלון מורכב מ־24 עמודות ו־18 שורות של תאים, שכל אחד מהם בגודל 20 פיקסלים רבועים, והנחש נע בכל פעם תא שלם אחד.
עובדים עם תאים והופכים אותם לפיקסלים רק לצורך ציור. התא (col, row) מתחיל בפיקסל (col * 20, row * 20). ציור של כל תא בגודל קטן ב־2 פיקסלים, במרחק של פיקסל אחד מכל צד, משאיר רווח דק בין התאים השכנים ומאפשר לראות את מקטעי הנחש.
def draw_cell(cell, color):
col, row = cell
pygame.draw.rect(screen, color, (col * CELL + 1, row * CELL + 1, CELL - 2, CELL - 2))col, row = cell מפרק את הטפל לשני משתנים. כדאי לשמור את המספרים בקבועים כמו CELL, COLS ו־ROWS: הקוד מסביר מה המשמעות שלהם, ושינוי של אחד מהם משנה את המשחק כולו.
אתגר
קלציירו את ראש הנחש על רשת של תאים.
- מעל הלולאה, כתבו
draw_cell(cell, color), שמצייר תא אחד במרחק של פיקסל אחד מכל צד, כמו למעלה. - הגדירו
head = (5, 9). - אחרי המילוי, ציירו את הראש בעזרת
draw_cell(head, (180, 255, 160)).
לחצו על "שחק": תא ירוק מופיע בצד שמאל של שורה 9. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
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()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((30, 30, 46))
pygame.display.flip()
clock.tick(10)
pygame.quit()
כל השיעורים ביחידה צרו משחקים עם Pygame
תרגלו בעצמכם: Pygame אונליין