Итак, я пытаюсь создать простую однопользовательскую игру Pong с pygame. Мяч запускается, и когда он ударяется о стену, он восстанавливается ... до тех пор, пока я не буду двигать ракеткой. Когда я двигаю ракеткой, мяч просто отскакивает от всех стен и даже не принимает во внимание, есть ракетка или нет. был бы очень признателен за любой код для исправления этого. Спасибо!
import sys
import pygame
pygame.init()
size = width, height = 1000, 800
screenColor = 0, 0, 0
outline = 0, 0, 255
paddleOne = pygame.image.load("PONGPADDLE.png")
ball = pygame.image.load("Bullet.png")
ballRect = ball.get_rect()
speed = [1, 1]
paddleOne_x = 980
paddleOne_y = 400
paddleOnePos_x = 0
paddleOnePos_y = 0
screen = pygame.display.set_mode(size)
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
paddleOnePos_y = -1
if event.key == pygame.K_DOWN:
paddleOnePos_y = +1
if event.type == pygame.KEYUP:
if event.key == pygame.K_UP:
paddleOnePos_y = 0
if event.key == pygame.K_DOWN:
paddleOnePos_y = 0
ballRect = ballRect.move(speed)
if ballRect.left < 0:
speed[0] = -speed[0]
if ballRect.top < 0 or ballRect.bottom > height:
speed[1] = -speed[1]
if ballRect.right == 980:
if ballRect.right > paddleOne_y & ballRect.right < paddleOne_y:
speed[0] = -speed[0]
else:
ballRect = ball.get_rect()
paddleOne_y += paddleOnePos_y
screen.fill(screenColor)
screen.blit(paddleOne, (paddleOne_x, paddleOne_y))
screen.blit(ball, ballRect)
pygame.draw.rect(screen, outline, ((0, 0), (width, height)), 5)
pygame.display.flip()