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

נפילות אקראיות

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

כשהבלוק נופל מעבר לתחתית, החזר אותו מעל לחלק העליון כדי שייפול שוב. החלק העליון שלו נמצא מעבר לתחתית כאשר block.top > 360.

כדי להפוך את המשחק לפחות צפוי, הפיל אותו במקום אקראי. המודול random של Python בוחר מספרים: random.randint(0, 460) הוא מספר שלם מ־0 עד 460, כולל שניהם.

import random

if block.top > 360:
    block.y = -20
    block.x = random.randint(0, 460)

למה 460? רוחב הבלוק הוא 20, ולכן ערך x של 460 מציב את הצד הימני שלו בקצה החלון. ו־y = -20 מציב אותו ממש מעל לחלון, כך שהוא נכנס בהחלקה מלמעלה.

challenge icon

אתגר

קל
  1. הוסף import random בראש הקובץ.
  2. אחרי שהבלוק נופל, כאשר block.top > 360, הגדר את block.y = -20 ואת block.x ל־random.randint(0, 460).

נסו בעצמכם

import pygame

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

basket = pygame.Rect(200, 330, 80, 16)
block = pygame.Rect(220, 0, 20, 20)

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

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        basket.x -= 8
    if keys[pygame.K_RIGHT]:
        basket.x += 8
    basket.clamp_ip(screen.get_rect())

    block.y += 3

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (80, 160, 255), basket)
    pygame.draw.rect(screen, (235, 80, 80), block)
    pygame.display.flip()
    clock.tick(60)

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

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

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

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