סצנה של צורות
חלק מהיחידה לולאת המשחק במסלול ה-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()
כל השיעורים ביחידה לולאת המשחק
תרגלו בעצמכם: Pygame אונליין