Menu
CoddyTech
flag Ar iconالعربيةdown icon

الارتداد

الدرس 30 من 40 في دورة اصنع ألعابًا باستخدام Pygame على Coddy.

ترتد الكرة عن الحافتين العلوية والسفلية. عندما تلامس إحداهما، اعكس إشارة vy: فالحركة إلى الأسفل تصبح حركة إلى الأعلى بالمقدار نفسه.

if ball.top <= 0 or ball.bottom >= 400:
    vy = -vy

اختبر باستخدام <= و>=، وليس ==. تتحرك الكرة بمقدار 4 بكسلات في كل إطار، لذا يكون موضع أسفلها 395، ثم 399، ثم 403، ولا يكون أبدًا 400 تمامًا.

الحافتان اليسرى واليمنى هما الموضعان اللذان تُسجَّل عندهما النقاط، لذا لا ترتد الكرة عنهما. في الوقت الحالي، تخرج الكرة من الشاشة.

challenge icon

التحدي

سهل

بعد تحريك الكرة، اعكس قيمة vy عندما يكون أعلى الكرة عند 0 أو أقل، أو أسفلها عند 400 أو أكثر.

جرّب بنفسك

import pygame

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Pong")
clock = pygame.time.Clock()

ball = pygame.Rect(293, 193, 14, 14)
vx, vy = 5, 4

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

    ball.x += vx
    ball.y += vy

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

pygame.quit()
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

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

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