Menu
CoddyTech
flag Ar iconالعربيةdown icon

لوحة النتائج

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

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

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اختبر نفسك

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

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

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