شبكة من الخلايا
جزء من قسم المشاريع في رحلة Pygame على Coddy. الدرس 1 من 31.
تتحرك الأفعى على شبكة. تتكون النافذة من 24 عمودًا و18 صفًا من الخلايا، طول ضلع كل منها 20 بكسلًا، وتتحرك الأفعى خلية كاملة في كل مرة.
اعمل بالخلايا وحوّلها إلى بكسلات للرسم فقط. تبدأ الخلية (col, row) عند البكسل (col * 20, row * 20). يؤدي رسم كل خلية بحجم أصغر بمقدار 2 بكسل، مع إزاحة قدرها 1 بكسل عن كل جانب، إلى ترك فجوة رفيعة بين الخلايا المتجاورة، بحيث يمكنك رؤية أجزاء الأفعى.
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)، التي ترسم خلية واحدة على بُعد 1 بكسل من كل جانب، كما سبق. - عيّن
head = (5, 9). - بعد التعبئة، ارسم الرأس باستخدام
draw_cell(head, (180, 255, 160)).
جرّب بنفسك
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()
جميع دروس المشاريع
تدرّب بنفسك: Playground لـ Pygame