מעבר דרך קצה המסך
חלק מהיחידה Python בחלון משחק במסלול ה-Pygame של Coddy. שיעור 10 מתוך 32.
הפקודה if מריצה את השורות שלה רק כאשר תנאי מתקיים:
if comet_x > 640:
comet_x = 0התנאי מסתיים בנקודתיים. השורות שמתחתיו מוזחות ב-4 רווחים: הן שייכות ל-if. Python בודקת את התנאי בכל פריים. כל עוד המטאור נמצא בחלון, התנאי שקרי ולא קורה דבר. ברגע שהמטאור עובר את הקצה הימני, התנאי נעשה אמיתי, והמטאור חוזר לצד השמאלי.
השוואה היא או True או False. > פירושו גדול מ-, < קטן מ-, ו-== בודק אם שני ערכים שווים. סימן = אחד שומר ערך; שניים משווים.
בדקו טווח כגון > 640, ולא ערך מדויק אחד. המטאור מתחיל ב-50 ונע 3 פיקסלים בכל פריים: 635, 638, 641. הוא אף פעם לא נוחת על 640, ולכן comet_x == 640 לעולם לא יהיה נכון.
אתגר
קלאחרי השורה שמזיזה את השביט, הוסיפו תנאי if: כאשר comet_x גדול מ־640, הגדירו את comet_x לערך 0. כך השביט יעוף שוב ושוב לרוחב החלון.
נסו בעצמכם
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# הגדירו כאן את הדברים, לפני לולאת המשחק.
moon_x = 160
moon_y = 120
comet_x = 50
comet_y = 200
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# שנו כאן את הדברים, פעם אחת בכל פריים.
comet_x = comet_x + 3
screen.fill((20, 24, 48))
# ציירו כאן, אחרי מילוי הרקע.
pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
pygame.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)
pygame.display.flip()
clock.tick(60)
pygame.quit()
כל השיעורים ביחידה Python בחלון משחק
תרגלו בעצמכם: Pygame אונליין