Menu
CoddyTech

الارتداد

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

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

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

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

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

challenge icon

التحدي

سهل

اجعل الكرة ترتد عن الحافتين العلوية والسفلية.

  1. بعد تحريك الكرة، اعكس vy عندما يكون موضع أعلى الكرة 0 أو أقل.
  2. اعكسه أيضًا عندما يكون موضع أسفلها 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()

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

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