I want to move the left paddle using W and S, but whenever I click the keys the paddle doesn't move. I've only been learning python for a few months and pygame a few weeks, so if its a really obvious mistake then that's why.
Here's the main game loop:
while not x:
for event in pygame.event.get():
if event.type == pygame.QUIT:
x = True #quits the game when you press X
if event.type == pygame.KEYUP: #makes start screen go away
if event.key == pygame.K_RETURN:
gamescreen()
ball = Ball(window, white, 350, 220, 7)
p1Paddle = Paddle(window, blue, 50, 180, 10, 60)
p2Paddle = Paddle(window, red, 630, 180, 11, 60)
#moves the paddles
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_w: #supposed to make the paddle go up
p1Paddle.state = 'up'
print('up')
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_s: #supposed to make the paddle go down
p1Paddle.state = 'down'
p1Paddle.move()
print('down')
pygame.display.update()
clock.tick(45)
and here's the paddle function/class.
class Paddle:
def __init__(self, screen, colour, posX, posY, width, height):
self.screen = screen
self.colour = colour
self.posX = posX
self.posY = posY
self.width = width
self.height = height
self.state = 'stopped'
self.show()
def show(self):
pygame.draw.rect(self.screen, self.colour, (self.posX, self.posY, self.width, self.height))
def move(self):
if self.state == 'up':
self.posY -= 10
elif self.state == 'down':
self.posY += 10
(I haven't gotten the chance to add the controls for the second paddle; I'll get there once I figure this one out.) It prints 'up' and 'down', so I know it works to some extent.