Pygame problème avec le déplacement quand il y a deux joueurs

Résolu/Fermé
Enz0lanterne828 Messages postés 50 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 21 mars 2020 - 4 févr. 2020 à 22:22
Enz0lanterne828 Messages postés 50 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 21 mars 2020 - 5 févr. 2020 à 14:31
Bonjour,

J'ai 12 ans et je débute en python.
En ce moment j'utilise le module PyGame.

J'ai commencé par créer un jeu où un personnage se déplace et peut tirer des projectiles en suivant un tuto.
J'ai donc essayé de reproduire le jeu avec deux personnages cette fois et je tombe sur un problème:

Quand je lance mon programme et que je déplace mes personnages tout vas bien mais dès que je les déplaces les deux en même temps, un des deux se bloque alors que l'autre avance...

Je pense que cela est dû au fait que j'ai attribué une action pour chaque touche --->
  if game.pressed.get(pygame.K_f) and game.blue_player.rect.x + game.blue_player.rect.width < screen.get_width():
        game.blue_player.move_right()
    elif game.pressed.get(pygame.K_d) and game.blue_player.rect.x > 0:
        game.blue_player.move_left()
    elif game.pressed.get(pygame.K_RIGHT) and game.red_player.rect.x + game.red_player.rect.width < screen.get_width():
        game.red_player.move_right()
    elif game.pressed.get(pygame.K_LEFT) and game.red_player.rect.x > 0:
        game.red_player.move_left()


J'ai essayé de tester des choses comme --->
 elif game.pressed.get(pygame.K_LEFT and pygame.K_d):
        game.red_player.move_left() and game.blue_player.move_left()

Mais cela ne marches pas.

Je veux faire en sorte que les deux personnages puissent se déplacer en même temps...

Merci d'avance, cordialement
A voir également:

2 réponses

Bonjour,

Dans ton 1er morceau de code tu devrais avoir 2 conditions distinctes.

if game.pressed.get(pygame.K_f) and game.blue_player.rect.x + game.blue_player.rect.width < screen.get_width():
    game.blue_player.move_right()
elif game.pressed.get(pygame.K_d) and game.blue_player.rect.x > 0:
    game.blue_player.move_left()

if game.pressed.get(pygame.K_RIGHT) and game.red_player.rect.x + game.red_player.rect.width < screen.get_width():
    game.red_player.move_right()
elif game.pressed.get(pygame.K_LEFT) and game.red_player.rect.x > 0:
    game.red_player.move_left()
1
Enz0lanterne828 Messages postés 50 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 21 mars 2020 8
5 févr. 2020 à 14:31
Ha oui, merci, je n'avais pas remarqué :-)
0