الارتداد
الدرس 30 من 41 في دورة اصنع ألعابًا باستخدام Pygame على Coddy.
ترتد الكرة عن الحافتين العلوية والسفلية. عندما تلامس إحداهما، اعكس إشارة vy: فالحركة إلى الأسفل تصبح حركة إلى الأعلى بالمقدار نفسه.
if ball.top <= 0 or ball.bottom >= 400:
vy = -vyاختبر باستخدام <= و>=، وليس ==. تتحرك الكرة بمقدار 4 بكسلات في كل إطار، لذا يكون موضع أسفلها 395، ثم 399، ثم 403، ولا يكون أبدًا 400 تمامًا.
الحافتان اليسرى واليمنى هما الموضعان اللذان تُسجَّل عندهما النقاط، لذا لا ترتد الكرة عنهما. في الوقت الحالي، تخرج الكرة من الشاشة.
التحدي
سهلاجعل الكرة ترتد عن الحافتين العلوية والسفلية.
- بعد تحريك الكرة، اعكس
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()
جميع دروس اصنع ألعابًا باستخدام Pygame
تدرّب بنفسك: Playground لـ Pygame