Menu
CoddyTech
flag Ar 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

تدرّب بنفسك: Playground لـ Pygame