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