Amazing-Python-Scripts

Форк
0
84 строки · 3.3 Кб
1
import pygame
2
# Initialize pygame
3

4
pygame.init()  # Initialize pygame
5

6
# Set the window size
7
screen = pygame.display.set_mode((600, 400))  # Set the window size
8

9
# Set the title of the window
10
pygame.display.set_caption("Pong")  # Set the title of the window
11

12
# Set up the game clock
13
clock = pygame.time.Clock()  # Set up the game clock
14

15
# Load the images for the ball and paddles
16
ball_image = pygame.image.load("Assets/ball.png")
17
paddle_image = pygame.image.load("Assets/paddle.png")
18

19
# Create the ball sprite
20
ball = pygame.sprite.Sprite()  # Create the ball sprite
21
ball.image = ball_image  # Load the ball image
22
ball.rect = ball.image.get_rect()  # Get the ball's rects
23

24
# Create the paddles
25
left_paddle = pygame.sprite.Sprite()  # Create the left paddle
26
left_paddle.image = paddle_image  # Load the left paddle image
27
left_paddle.rect = left_paddle.image.get_rect()  # Get the left paddle's rect
28

29
right_paddle = pygame.sprite.Sprite()  # Create the right paddle
30
right_paddle.image = paddle_image  # Load the right paddle image
31
right_paddle.rect = right_paddle.image.get_rect()  # Get the right paddle's rect
32

33
# Set the initial positions of the ball and paddles
34
ball.rect.center = (300, 200)  # Set the ball's initial position
35
left_paddle.rect.left = 20  # Set the left paddle's initial position
36
left_paddle.rect.centery = 200  # Set the left paddle's initial position
37
right_paddle.rect.right = 580  # Set the right paddle's initial position
38
right_paddle.rect.centery = 200  # Set the right paddle's initial position
39

40
# Set the ball's initial velocity
41
ball_vx = 5
42
ball_vy = 5
43

44
# Game loop
45
while True:
46
    # Handle events
47
    for event in pygame.event.get():  # Handle events
48
        if event.type == pygame.QUIT:  # Handle the QUIT event
49
            pygame.quit()  # Quit pygame
50
            exit()  # Exit the program
51

52
    # Update game state
53
    ball.rect.x += ball_vx  # Update the ball's x position
54
    ball.rect.y += ball_vy  # Update the ball's y position
55

56
    # Update game state
57
    keys = pygame.key.get_pressed()  # Get the keys that are pressed
58
    if keys[pygame.K_UP]:  # Check if the up key is pressed
59
        right_paddle.rect.y -= 5  # Update the right paddle's y position
60
    if keys[pygame.K_DOWN]:  # Check if the down key is pressed
61
        right_paddle.rect.y += 5  # Update the right paddle's y position
62
    if keys[pygame.K_w]:    # Check if the w key is pressed
63
        left_paddle.rect.y -= 5  # Update the left paddle's y position
64
    if keys[pygame.K_s]:    # Check if the s key is pressed
65
        left_paddle.rect.y += 5  # Update the left paddle's y position
66

67
    # Check for ball collision with paddles
68
    # Check for ball collision with paddles
69
    if ball.rect.colliderect(left_paddle.rect) or ball.rect.colliderect(right_paddle.rect):
70
        ball_vx = -ball_vx  # Reverse the ball's x velocity
71

72
    # Check for ball collision with walls
73
    if ball.rect.top < 0 or ball.rect.bottom > 400:  # Check for ball collision with walls
74
        ball_vy = -ball_vy  # Reverse the ball's y velocity
75

76
    # Draw the screen
77
    screen.fill((0, 0, 0))  # Fill the screen with black
78
    screen.blit(ball.image, ball.rect)  # Draw the ball
79
    screen.blit(left_paddle.image, left_paddle.rect)  # Draw the left paddle
80
    screen.blit(right_paddle.image, right_paddle.rect)  # Draw the right paddle
81
    pygame.display.flip()  # Update the display
82

83
    # Limit the frame rate
84
    clock.tick(60)
85

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.