True או False
חלק מהיחידה Python בחלון משחק במסלול ה-Pygame של Coddy. שיעור 14 מתוך 32.
True ו-False הם ערכים בפני עצמם, שנקראים ערכים בוליאניים. משתנה יכול להכיל אחד מהם, כמו מתג:
lamp_on = Falseאפשר לבדוק אותו ישירות באמצעות if: הקוד if lamp_on: מופעל כשהערך שלו הוא True. not הופך אותו, לכן lamp_on = not lamp_on מדליק ומכבה את המנורה.
מתג זקוק ללחיצה על מקש, לא להחזקה של מקש. get_pressed() מחזיר True בכל פריים שבו המקש לחוץ, ולכן הוא היה מדליק ומכבה את המנורה 60 פעמים בשנייה. לחיצה מתרחשת פעם אחת, כאירוע KEYDOWN, בלולאת האירועים שבראש לולאת המשחק:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
lamp_on = not lamp_onיחידה 2 מסבירה אירועים במלואם. בינתיים: event.type מציין מה קרה, ו-event.key מציין איזה מקש.
אתגר
בינונילחצו על מקש הרווח כדי להדליק ולכבות את המנורה:
- בחלק האתחול, הגדירו
lamp_on = False. - בלולאת האירועים, כשמגיע אירוע
KEYDOWNעבורK_SPACE, הגדירוlamp_on = not lamp_on. - ציירו את האור במיקום
(320, 290), ברדיוס 30: בצבע(255, 220, 100)כאשרlamp_onהוא True, ואחרת בצבע(70, 70, 90).
נסו בעצמכם
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.rect(screen, (90, 90, 110), (310, 300, 20, 180))
pygame.draw.circle(screen, (70, 70, 90), (320, 290), 30)
pygame.display.flip()
clock.tick(60)
pygame.quit()
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה Python בחלון משחק
תרגלו בעצמכם: Pygame אונליין