Menu
CoddyTech

הרץ

חלק מהיחידה חוקי המשחק במסלול ה-Pygame של Coddy. שיעור 23 מתוך 29.

בפרק הזה נבנה את Sky Runner, משחק ריצה אינסופי. הדמות נשארת סמוך לקצה השמאלי, בעוד שמכשולים מגיעים מימין; קופצים מעליהם כל עוד אפשר. השמיים והקרקע מצוירים. הדמות היא ספרייט, כמו ביחידה 3:

class Runner(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = pygame.image.load("assets/images/player.png").convert_alpha()
        self.rect = self.image.get_rect(midbottom=(100, GROUND_Y))

midbottom מציב את אמצע הקצה התחתון של התמונה בנקודה מסוימת. רגלי הדמות נמצאות בתחתית התמונה שלה, לכן midbottom=(100, GROUND_Y) מציב אותה על הקרקע ב-x 100, בלי קשר לגובה שלה.

GROUND_Y הוא ערך ה-y של הקצה העליון של הקרקע, 260. כל דבר שעומד על הקרקע משתמש בו, ולכן שינוי הקרקע בהמשך ידרוש שינוי אחד בלבד.

challenge icon

אתגר

קל
  1. כתבו מחלקת ספרייט בשם Runner, שהתמונה שלה היא assets/images/player.png ושה־midbottom של המלבּן שלה נמצא ב־(100, GROUND_Y).
  2. צרו אחד כזה בשם runner לפני הלולאה.
  3. הציגו את runner.image במיקום של runner.rect לאחר ציור הקרקע.

נסו בעצמכם

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 320))
pygame.display.set_caption("Sky Runner")
clock = pygame.time.Clock()

SKY = (140, 200, 240)
GROUND = (90, 160, 80)
GROUND_Y = 260

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

    screen.fill(SKY)
    pygame.draw.rect(screen, GROUND, (0, GROUND_Y, 640, 60))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

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

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