פרמטרים
חלק מהיחידה Python בחלון משחק במסלול ה-Pygame של Coddy. שיעור 21 מתוך 32.
לפונקציה שתמיד מציירת בנקודה (320, 240) יש שימוש מועט. פרמטרים מאפשרים למי שקורא לפונקציה לבחור. נותנים להם שמות בסוגריים של def ומשתמשים בהם בגוף הפונקציה כמו במשתנים:
def draw_star(x, y):
pygame.draw.line(screen, (255, 240, 200), (x - 10, y), (x + 10, y), 2)
pygame.draw.line(screen, (255, 240, 200), (x, y - 10), (x, y + 10), 2)
pygame.draw.circle(screen, (255, 240, 200), (x, y), 4)בכל קריאה מועברים ערכים, הארגומנטים, באותו סדר: draw_star(120, 100) מריצה את גוף הפונקציה עם x שערכו 120 ועם y שערכו 100. draw_star(520, 90) מריצה אותו שוב עם ערכים אחרים. הגדרה אחת, וכוכבים רבים ככל שתרצו לצייר.
הפרמטרים קיימים רק בתוך הפונקציה בזמן שהיא רצה. מחוץ לה, ל־x ול־y אין משמעות, או שהם מתייחסים למה שאחסנתם תחת השמות האלה שם.
אתגר
בינוניאפשרו לקוד שקורא לפונקציה למקם את הכוכב:
- שנו את ההגדרה ל־
def draw_star(x, y):וציירו מסביב ל־(x, y): את הקווים מ־x - 10עדx + 10ומ־y - 10עדy + 10, ואת הנקודה ב־(x, y). - קראו לפונקציה שלוש פעמים: במיקומים (120, 100), (320, 180) ו־(520, 90).
נסו בעצמכם
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# הגדירו כאן את הדברים, לפני לולאת המשחק.
def draw_star():
pygame.draw.line(screen, (255, 240, 200), (310, 240), (330, 240), 2)
pygame.draw.line(screen, (255, 240, 200), (320, 230), (320, 250), 2)
pygame.draw.circle(screen, (255, 240, 200), (320, 240), 4)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# שנו כאן דברים פעם אחת בכל פריים.
screen.fill((20, 24, 48))
# ציירו כאן, אחרי מילוי הרקע.
draw_star()
pygame.display.flip()
clock.tick(60)
pygame.quit()
כל השיעורים ביחידה Python בחלון משחק
תרגלו בעצמכם: Pygame אונליין