Untitled
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)