Menu
CoddyTech

إسقاطات عشوائية

الدرس 11 من 41 في دورة اصنع ألعابًا باستخدام 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()

جميع دروس اصنع ألعابًا باستخدام Pygame

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