Advertisement
Guest User

Untitled

a guest
Jan 29th, 2024
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.86 KB | None | 0 0
  1. import pygame
  2. import random
  3. import time
  4.  
  5. # Initialize Pygame
  6. pygame.init()
  7.  
  8. # Screen dimensions
  9. screen_width = 800
  10. screen_height = 600
  11. screen = pygame.display.set_mode((screen_width, screen_height))
  12. pygame.display.set_caption("Solo Pong")
  13.  
  14. # Colors
  15. white = (255, 255, 255)
  16. black = (0, 0, 0)
  17.  
  18. # Ball properties
  19. ball_size = 10
  20. ball_pos = [screen_width // 2, screen_height // 2]
  21. ball_vel = [0.03, 0.03]
  22.  
  23. # Paddle properties
  24. paddle_width = 15
  25. paddle_height = 100
  26. user_paddle_pos = [screen_width - paddle_width - 10, screen_height // 2 - paddle_height // 2]
  27. ai_paddle_pos = [10, screen_height // 2 - paddle_height // 2]
  28. paddle_vel = .05
  29.  
  30. # Function to draw the ball
  31. def draw_ball(screen, ball_pos, ball_size):
  32. pygame.draw.circle(screen, white, ball_pos, ball_size)
  33.  
  34. # Function to draw the paddles
  35. def draw_paddle(screen, paddle_pos, paddle_width, paddle_height):
  36. pygame.draw.rect(screen, white, (paddle_pos[0], paddle_pos[1], paddle_width, paddle_height))
  37.  
  38. # Function to update the AI paddle's position
  39. def ai_paddle(ai_paddle_pos, ball_pos):
  40. if ai_paddle_pos[1] < ball_pos[1]:
  41. ai_paddle_pos[1] += paddle_vel
  42. elif ai_paddle_pos[1] > ball_pos[1]:
  43. ai_paddle_pos[1] -= paddle_vel
  44.  
  45. # Function to handle user input
  46. def handle_input():
  47. keys = pygame.key.get_pressed()
  48. if keys[pygame.K_UP] and user_paddle_pos[1] > 0:
  49. user_paddle_pos[1] -= paddle_vel
  50. elif keys[pygame.K_DOWN] and user_paddle_pos[1] + paddle_height < screen_height:
  51. user_paddle_pos[1] += paddle_vel
  52.  
  53. # Function to update the ball's position
  54. def update_ball(ball_pos, ball_vel):
  55. ball_pos[0] += ball_vel[0]
  56. ball_pos[1] += ball_vel[1]
  57.  
  58. if ball_pos[1] <= 0 or ball_pos[1] >= screen_height - ball_size:
  59. ball_vel[1] = -ball_vel[1]
  60.  
  61. if ball_pos[0] <= 0:
  62. ball_vel[0] = -ball_vel[0]
  63. elif ball_pos[0] >= screen_width - ball_size:
  64. if ball_pos[1] > user_paddle_pos[1] and ball_pos[1] < user_paddle_pos[1] + paddle_height:
  65. ball_vel[0] = -ball_vel[0] * 1
  66. ball_vel[1] += 0.01
  67. else:
  68. return False
  69.  
  70. if ball_pos[0] <= ai_paddle_pos[0] + paddle_width and ball_pos[1] > ai_paddle_pos[1] and ball_pos[1] < ai_paddle_pos[1] + paddle_height:
  71. ball_vel[0] = -ball_vel[0] * 1
  72. ball_vel[1] += 0.0001
  73.  
  74. return True
  75.  
  76. # Main game loop
  77. running = True
  78. while running:
  79. screen.fill(black)
  80.  
  81. for event in pygame.event.get():
  82. if event.type == pygame.QUIT:
  83. running = False
  84.  
  85. draw_ball(screen, ball_pos, ball_size)
  86. draw_paddle(screen, user_paddle_pos, paddle_width, paddle_height)
  87. draw_paddle(screen, ai_paddle_pos, paddle_width, paddle_height)
  88.  
  89. handle_input()
  90. ai_paddle(ai_paddle_pos, ball_pos)
  91.  
  92. if not update_ball(ball_pos, ball_vel):
  93. running = False
  94.  
  95. pygame.display.flip()
  96.  
  97. pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement