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.
Défi
Facile- Au-dessus de la boucle, écris
draw_cell(cell, color), qui dessine une cellule à 1 pixel de chaque bord, comme ci-dessus. - Définis
head = (5, 9). - 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