הפונקציה שלכם
חלק מהיחידה Python בחלון משחק במסלול ה-Pygame של Coddy. שיעור 20 מתוך 32.
פונקציה היא קבוצת שורות בעלת שם שאפשר להריץ מתי שרוצים. def מגדירה פונקציה:
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)def, השם, סוגריים עגולים ונקודתיים; גוף הפונקציה מוזח מתחת לשורה הזאת. הגדרת פונקציה לא מציירת דבר: Python רק זוכרת את השורות שמתחת לשם.
כדי להריץ אותה, קוראים לפונקציה: כותבים את שמה עם סוגריים.
draw_star()מגדירים פונקציות בחלק האתחול, לפני לולאת המשחק, וקוראים להן בלולאה במקום שבו צריך אותן. קראת לפונקציות כבר מהשיעור הראשון: גם print() וגם pygame.draw.circle() הן פונקציות שנכתבו בידי אחרים.
pygame.draw.line(screen, colour, start, end, width) מציירת קו בין שתי נקודות.
אתגר
בינוניהכניסו את הכוכב לפונקציה:
- בחלק ההגדרה, כתבו
def draw_star():והעבירו את שלוש השורות שמציירות את הכוכב לגוף הפונקציה. - בחלק הציור, קראו ל־
draw_star(). הכוכב מופיע ב־(320, 240) כמו קודם.
נסו בעצמכם
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# הגדירו כאן את הדברים, לפני לולאת המשחק.
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# שנו כאן את הדברים, פעם אחת בכל פריים.
screen.fill((20, 24, 48))
# ציירו כאן, אחרי מילוי המסך.
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)
pygame.display.flip()
clock.tick(60)
pygame.quit()
כל השיעורים ביחידה Python בחלון משחק
תרגלו בעצמכם: Pygame אונליין