Menu
CoddyTech
flag He iconעבריתdown icon

הישארות על המסך

שיעור 7 מתוך 40 בקורס יוצרים משחקים עם Pygame של Coddy.

אם מחזיקים את החץ ימינה מספיק זמן, הריבוע יוצא מהחלון. כדי להשאיר אותו בפנים, יש להגביל את x ואת y אחרי שמזיזים אותם.

min(a, b) מחזירה את המספר הקטן יותר, ו־max(a, b) את הגדול יותר. יחד הם משאירים מספר בין שני גבולות:

x = max(0, min(x, 480 - 40))

min(x, 440) מונעת מ־x לעלות מעל 440, ו־max(0, ...) מונעת ממנו לרדת מתחת ל־0. למה 440 ולא 480? x הוא הצד השמאלי של הריבוע, ולכן הצד הימני נמצא ב־x + 40. ב־440 הצד הימני נוגע בקצה החלון.

אותו הדבר נכון גם לגבי y, בהתאם לגובה החלון.

challenge icon

אתגר

קל

אחרי ארבע בדיקות החצים ולפני המילוי, השאר את הריבוע בתוך החלון בגודל 480 על 360: הגבל את x לטווח שבין 0 ל־440 ואת y לטווח שבין 0 ל־320.

נסו בעצמכם

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()

x, y = 220, 160

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    keys = pygame.key.get_pressed()
    speed = 4
    if keys[pygame.K_SPACE]:
        speed = 8
    if keys[pygame.K_LEFT]:
        x -= speed
    if keys[pygame.K_RIGHT]:
        x += speed
    if keys[pygame.K_UP]:
        y -= speed
    if keys[pygame.K_DOWN]:
        y += speed

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יוצרים משחקים עם Pygame

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