Menu
CoddyTech

מעבר דרך קצה המסך

חלק מהיחידה 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 לעולם לא יהיה נכון.

challenge icon

אתגר

קל

אחרי השורה שמזיזה את השביט, הוסיפו תנאי 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 אונליין