Untitled

mail@pastecode.io avatar
unknown
python
7 months ago
2.1 kB
0
Indexable
Never
import pygame
import sys

# Ustawienia gry
SCREEN_WIDTH, SCREEN_HEIGHT = 800, 600
BALL_RADIUS = 10
PADDLE_WIDTH, PADDLE_HEIGHT = 15, 80
FPS = 60
BALL_SPEED = 2
PADDLE_SPEED = 2

# Kolory
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)

# Inicjalizacja pygame
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
clock = pygame.time.Clock()

# Obiekty gry
ball = pygame.Rect(SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2, BALL_RADIUS * 2, BALL_RADIUS * 2)
paddle1 = pygame.Rect(0, SCREEN_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT)
paddle2 = pygame.Rect(SCREEN_WIDTH - PADDLE_WIDTH, SCREEN_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT)

# Kierunek piłki
ball_dx = ball_dy = BALL_SPEED

while True:
    # Obsługa zdarzeń
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    # Sterowanie paddle1
    keys = pygame.key.get_pressed()
    if keys[pygame.K_UP]:
        paddle1.move_ip(0, -PADDLE_SPEED)
    elif keys[pygame.K_DOWN]:
        paddle1.move_ip(0, PADDLE_SPEED)

    # Sterowanie paddle2 (komputer)
    if ball.centery > paddle2.centery:
        paddle2.move_ip(0, PADDLE_SPEED)
    elif ball.centery < paddle2.centery:
        paddle2.move_ip(0, -PADDLE_SPEED)

    # Ograniczenia ruchu palet
    paddle1.clamp_ip(pygame.Rect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT))
    paddle2.clamp_ip(pygame.Rect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT))

    # Ruch piłki
    ball.move_ip(ball_dx, ball_dy)

    # Kolizje piłki z paletami
    if ball.colliderect(paddle1) or ball.colliderect(paddle2):
        ball_dx *= -1
    # Kolizje piłki ze ścianami
    elif ball.top <= 0 or ball.bottom >= SCREEN_HEIGHT:
        ball_dy *= -1

    # Wyświetlanie
    screen.fill(BLACK)
    pygame.draw.rect(screen, WHITE, paddle1)
    pygame.draw.rect(screen, WHITE, paddle2)
    pygame.draw.ellipse(screen, WHITE, ball)
    pygame.draw.aaline(screen, WHITE, (SCREEN_WIDTH // 2, 0), (SCREEN_WIDTH // 2, SCREEN_HEIGHT))

    pygame.display.flip()
    clock.tick(FPS)