Pygame problème avec le déplacement quand il y a deux joueurs [Résolu]

Signaler
Messages postés
50
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
21 mars 2020
-
Messages postés
50
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
21 mars 2020
-
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

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()
Messages postés
50
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
21 mars 2020
4
Ha oui, merci, je n'avais pas remarqué :-)