Menu
CoddyTech

مشهد من الأشكال

جزء من قسم حلقة اللعبة في رحلة Pygame على Coddy. الدرس 11 من 32.

تتكوّن الصورة في اللعبة غالبًا من أشكال صغيرة كثيرة. الشجرة هنا جذع بني تعلوه دائرة خضراء. ارسم عدة أشجار وستحصل على غابة.

عندما تظهر المجموعة نفسها من الأشكال أكثر من مرة، ضعها في دالة تتلقى الموقع. كل استدعاء يرسم شجرة واحدة:

def draw_tree(x, y):
    pygame.draw.rect(screen, (120, 80, 40), (x - 5, y, 10, 30))
    pygame.draw.circle(screen, (60, 170, 90), (x, y), 20)

draw_tree(80, 250)
draw_tree(240, 250)

يُوضَع كل شكل في الدالة اعتمادًا على x وy، لذا فإن تحريك الشجرة يعني تغيير استدعاء واحد.

يظل الترتيب مهمًا داخل الدالة. يبدأ الجذع عند مركز الدائرة، وتُرسَم الدائرة ثانيًا، لذا فهي تغطي الجزء العلوي من الجذع. بدّل السطرين وسيظهر الجذع من خلال الأوراق.

challenge icon

التحدي

سهل
  1. داخل draw_tree، ارسم التاج بعد الجذع: دائرة خضراء (60, 170, 90) مركزها (x, y) ونصف قطرها 20.
  2. أسفل draw_tree(80, 250)، استدعِ الدالة مرتين إضافيتين، للأشجار عند (240, 250) و(400, 250).

جرّب بنفسك

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Forest")
clock = pygame.time.Clock()


def draw_tree(x, y):
    pygame.draw.rect(screen, (120, 80, 40), (x - 5, y, 10, 30))


running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    screen.fill((30, 30, 46))
    pygame.draw.circle(screen, (240, 240, 210), (70, 60), 24)
    pygame.draw.rect(screen, (40, 90, 50), (0, 280, 480, 80))
    draw_tree(80, 250)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

جميع دروس حلقة اللعبة

تدرّب بنفسك: Playground لـ Pygame