מקמו את הכוכבים
חלק מהיחידה 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)ציירו את הכוכבים אחרי הירח והקרקע, כדי שיופיעו מעליהם. כוכב שממוקם על הירח יופיע לפניו, כאילו הוא קרוב יותר.
אתגר
קלהתחילו את שמי הלילה:
- צרו את
stars = []לפני לולאת המשחק. - באירוע
MOUSEBUTTONDOWN, הוסיפו אתevent.posאלstars. - אחרי הירח והקרקע, ציירו כל כוכב כעיגול לבן בצבע
(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 אונליין