Menu
CoddyTech

Une grille de cases

Fait partie de la section Projets du Journey Pygame de Coddy. Leçon 1 sur 31.

Snake se déplace sur une grille. La fenêtre compte 24 colonnes et 18 rangées de cellules, chacune faisant 20 pixels de côté, et le serpent avance d’une cellule entière à la fois.

Travaille en cellules et convertis-les en pixels uniquement pour le dessin. La cellule (col, row) commence au pixel (col * 20, row * 20). Dessiner chaque cellule avec 2 pixels de moins, en laissant 1 pixel de marge de chaque côté, crée un petit espace entre les cellules voisines, ce qui permet de distinguer les segments du serpent.

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 décompose le tuple en deux variables. Garde les nombres dans des constantes comme CELL, COLS et ROWS : le code indique leur signification, et en modifier une change tout le jeu.

challenge icon

Défi

Facile
  1. Au-dessus de la boucle, écris draw_cell(cell, color), qui dessine une cellule à 1 pixel de chaque bord, comme ci-dessus.
  2. Définis head = (5, 9).
  3. Après le remplissage, dessine la tête avec draw_cell(head, (180, 255, 160)).

Essayez vous-même

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()

Toutes les leçons de Projets

Entraînez-vous par vous-même : Playground Pygame