Menu
CoddyTech

Grid Petak

Termasuk bagian Proyek dalam perjalanan Pygame di Coddy. Pelajaran 1 dari 31.

Snake bergerak di atas grid. Jendela ini terdiri dari 24 kolom dan 18 baris sel, masing-masing berukuran 20 piksel persegi, dan Snake bergerak satu sel penuh setiap kali.

Kerjakan dalam satuan sel dan ubah menjadi piksel hanya untuk menggambar. Sel (col, row) dimulai pada piksel (col * 20, row * 20). Dengan menggambar setiap sel 2 piksel lebih kecil dan memberi jarak 1 piksel dari setiap sisi, akan tersisa celah tipis di antara sel-sel yang bersebelahan sehingga kamu dapat melihat segmen Snake.

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 membongkar tuple menjadi dua variabel. Simpan angka-angka dalam konstanta seperti CELL, COLS dan ROWS: kode ini menjelaskan arti konstanta tersebut, dan mengubah salah satunya akan mengubah seluruh game.

challenge icon

Tantangan

Mudah
  1. Di atas perulangan, tulis draw_cell(cell, color), yang menggambar satu sel dengan jarak 1 piksel dari setiap sisi, seperti di atas.
  2. Tetapkan head = (5, 9).
  3. Setelah pengisian, gambar kepala dengan draw_cell(head, (180, 255, 160)).

Coba sendiri

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

Semua pelajaran di Proyek

Latihan sendiri: Playground Pygame