مشهد من الأشكال
جزء من قسم حلقة اللعبة في رحلة 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، لذا فإن تحريك الشجرة يعني تغيير استدعاء واحد.
يظل الترتيب مهمًا داخل الدالة. يبدأ الجذع عند مركز الدائرة، وتُرسَم الدائرة ثانيًا، لذا فهي تغطي الجزء العلوي من الجذع. بدّل السطرين وسيظهر الجذع من خلال الأوراق.
التحدي
سهل- داخل
draw_tree، ارسم التاج بعد الجذع: دائرة خضراء(60, 170, 90)مركزها(x, y)ونصف قطرها20. - أسفل
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