Menu
CoddyTech

פרמטרים

חלק מהיחידה 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 אין משמעות, או שהם מתייחסים למה שאחסנתם תחת השמות האלה שם.

challenge icon

אתגר

בינוני

אפשרו לקוד שקורא לפונקציה למקם את הכוכב:

  1. שנו את ההגדרה ל־def draw_star(x, y): וציירו מסביב ל־(x, y): את הקווים מ־x - 10 עד x + 10 ומ־y - 10 עד y + 10, ואת הנקודה ב־(x, y).
  2. קראו לפונקציה שלוש פעמים: במיקומים (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 אונליין