Menu
CoddyTech

لوحة النتائج

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

خروج الكرة من الجهة اليمنى يمنح نقطة للاعب الأيسر، والعكس صحيح. قسّم الاختبار إلى قسمين، حتى يعرف كل جانب من سجّل:

if ball.left > 600:
    left_score += 1
    ball.center = (300, 200)
    vx = -vx
if ball.right < 0:
    right_score += 1
    ball.center = (300, 200)
    vx = -vx

اعرض النتيجتين في سطر واحد بالأعلى، في المنتصف: f"{left_score} : {right_score}" تُظهر 2 : 1.

challenge icon

التحدي

سهل
  1. قبل الحلقة، أنشئ font = pygame.font.Font(None, 36) وleft_score = 0 وright_score = 0.
  2. قسّم إعادة الضبط إلى جزأين: إذا تجاوزت الكرة الحافة اليمنى، فأضف 1 إلى left_score، وإذا تجاوزت الكرة الحافة اليسرى، فأضف 1 إلى right_score. في كلتا الحالتين، أعد الكرة إلى المنتصف واعكس vx.
  3. اعرض f"{left_score} : {right_score}" باللون (240, 240, 240)، في المنتصف عند (300, 30).

جرّب بنفسك

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
left = pygame.Rect(20, 160, 12, 80)
right = pygame.Rect(568, 160, 12, 80)

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

    keys = pygame.key.get_pressed()
    if keys[pygame.K_w]:
        left.y -= 6
    if keys[pygame.K_s]:
        left.y += 6
    if keys[pygame.K_UP]:
        right.y -= 6
    if keys[pygame.K_DOWN]:
        right.y += 6
    left.clamp_ip(screen.get_rect())
    right.clamp_ip(screen.get_rect())

    ball.x += vx
    ball.y += vy
    if ball.top <= 0 or ball.bottom >= 400:
        vy = -vy
    if ball.colliderect(left):
        vx = abs(vx)
    if ball.colliderect(right):
        vx = -abs(vx)
    if ball.right < 0 or ball.left > 600:
        ball.center = (300, 200)
        vx = -vx

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

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

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

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

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