Menu
CoddyTech
flag He 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

תרגלו בעצמכם: Pygame אונליין