Menu
CoddyTech

الارتداد

جزء من قسم المشاريع في رحلة Pygame على Coddy. الدرس 12 من 31.

ترتد الكرة عند الحافتين العلوية والسفلية. عندما تلامس إحداهما، اعكس إشارة 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اختبر نفسك

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

جميع دروس المشاريع

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