Menu
CoddyTech

מקמו את הכוכבים

חלק מהיחידה Python בחלון משחק במסלול ה-Pygame של Coddy. שיעור 29 מתוך 32.

ארבעת השיעורים האחרונים בונים משחק קטן אחד, Night Sky: לוחצים כדי למקם כוכבים, הם מנצנצים, מונה מציג כמה כוכבים יש, וכשמגיעים לעשרים השמיים מלאים. כל שיעור מתחיל מהקוד שכתבת בשיעור הקודם.

המשחק משתמש במה שנלמד ביחידה הזאת. הכוכבים הם רשימה של מיקומים, שיוצרים כריקה לפני לולאת המשחק. לחיצה מוסיפה את מיקומה לרשימה, ולולאת for מציירת כל כוכב ברשימה בכל פריים:

stars = []

        if event.type == pygame.MOUSEBUTTONDOWN:
            stars.append(event.pos)

    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 3)

ציירו את הכוכבים אחרי הירח והקרקע, כדי שיופיעו מעליהם. כוכב שממוקם על הירח יופיע לפניו, כאילו הוא קרוב יותר.

challenge icon

אתגר

קל

התחילו את שמי הלילה:

  1. צרו את stars = [] לפני לולאת המשחק.
  2. באירוע MOUSEBUTTONDOWN, הוסיפו את event.pos אל stars.
  3. אחרי הירח והקרקע, ציירו כל כוכב כעיגול לבן בצבע (255, 255, 255) וברדיוס 3.

נסו בעצמכם

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.circle(screen, (240, 230, 160), (560, 80), 40)
    pygame.draw.rect(screen, (14, 16, 30), (0, 430, 640, 50))

    pygame.display.flip()
    clock.tick(60)

pygame.quit()

כל השיעורים ביחידה Python בחלון משחק

תרגלו בעצמכם: Pygame אונליין