Using pygame, in the loops I have for fighting, I want it to pause when I await user input. However what seems to be happening is that it's still running through the loops.
The following sits within the main game loop.
while fighting: # fighting loop
if player.speed > enemy.speed:
player_turn = True
else:
player_turn = False
while player_turn:
for event in pygame.event.get():
if event.type == pygame.QUIT: # looks for an exit command
pygame.quit() # quits pygame
sys.exit() # closes system
label = myfont.render("Press space to attack or enter to wait", 1, (255, 255, 0))
key = pygame.key.get_pressed()
screen.fill(colour)
screen.blit(player.bitmap, player.player_rect)
screen.blit(enemy.bitmap, enemy.enemy_rect)
screen.blit(label, (200, 400))
player.player_rect.x = 100
player.player_rect.y = 300
enemy.enemy_rect.x = 700
enemy.enemy_rect.y = 300
if key[pygame.K_SPACE]:
player.player_attack(enemy)
elif key[pygame.K_RETURN]:
break
if enemy.hp <= 0:
fighting = False
pygame.display.flip() # updates screen
clock.tick(30) # limits fps to 30
player_turn = False
break
while not player_turn:
for event in pygame.event.get():
if event.type == pygame.QUIT: # looks for an exit command
pygame.quit() # quits pygame
sys.exit() # closes system
label = myfont.render("Press space to continue", 1, (255, 255, 0))
key = pygame.key.get_pressed()
screen.fill(colour)
screen.blit(player.bitmap, player.player_rect)
screen.blit(enemy.bitmap, enemy.enemy_rect)
screen.blit(label, (200, 400))
player.player_rect.x = 100
player.player_rect.y = 300
enemy.enemy_rect.x = 700
enemy.enemy_rect.y = 300
if key[pygame.K_SPACE]:
enemy.enemy_attack(player)
pygame.display.flip() # updates screen
clock.tick(30) # limits fps to 30
player_turn = True
break
What I'm wanting it to do is when it gets to the user input part, it waits inside the loop for input and once it receives input does it continue with the loop. I know it's probably something small but I've been looking at it for the better part of a day with no success.