Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bloqué sur l'intégration des touches sur Python

Pong avec Python et Pygame

    18 octobre 2020 à 11:50:21

    Bonjour à tous et à toutes.

    Je suis venu ici aujourd'hui pour vous demandez de l'aide, si vous pouvez.

    Alors, j'ai fais un programme sur python en utilisant pygame, je suis encore un débutant. Je veux faire un jeu de pong, mais je suis bloqué à la partie où il faut faire bouger les palets avec les flèches et le clavier car il doit y avoir 2 jours, et aussi sur la partie où il faut faire des collisions sur les palets avec la balle. Voici mon code:

    # permet d’accéder aux fonctions du module pygame
    import pygame
    import random
    # Definit des couleurs RGB
    BLACK = [0, 0, 0]
    WHITE = [255, 255, 255]
    GREEN = [0, 255, 0]
    RED = [255, 0, 0]
    BLUE = [0, 0, 255]
    
    player_width= 15
    player_height = 90
    player1_x_coor=50 - player_width
    player1_y_coor= 300-45
    player1_y_speed = 0
    player2_x_coor=750- player_width
    player2_y_coor=300-45
    player2_y_speed = 0
    player_width = 15 #Largeur joueur
    player_height = 90 #Hauteur joueur
    player1_vel = 0
    player2_vel = 0
    l_score = 0
    r_score = 0
    
    
    # initialisation de l’écran de jeu
    pygame.init()
    # Initialise la fenêtre de jeu
    TailleEcran = [800, 600]
    screen = pygame.display.set_mode(TailleEcran)
    run=True
    #img = pygame.image.load("pongTerrain.png")
    screen.blit
    pygame.display.set_caption("Mega Ball")
    # Gestion du rafraîchissement de l’écran
    clock = pygame.time.Clock()
    # Position de départ
    balle_x = 400
    balle_y = 300
    ligne_x = 756
    ligne_y = 291
    joueur1 = pygame.draw.rect(screen, WHITE, (player1_x_coor, player1_y_coor, player_width, player_height))
    joueur2 = pygame.draw.rect(screen, WHITE, (player2_x_coor, player2_y_coor, player_width, player_height))
    # Vitesse et direction
    balle_change_x = 5
    balle_change_y = 5
    balle_rayon = 5
    balle_speed_y= 2
    
    
    if balle_y > 575 or balle_y < 30:
    balle_speed_y *= -1
    # Le jeu continue tant que l’utilisateur ne ferme pas la fenêtre
    Termine = False
    # BOUCLE PRINCIPALE DU PROGRAMME
    while not Termine:
    # recupère la liste des évènements du joueur
    event = pygame.event.Event(pygame.USEREVENT)
    # ÉVÈNEMENTS
    # détecte le clic sur le bouton close de la fenêtre
    for event in pygame.event.get():
    if event.type == pygame.QUIT:
    Termine = True
    
    # LOGIQUE
    # Déplace la balle
    balle_x += balle_change_x
    balle_y += balle_change_y
    
    # Rebond
    if balle_y > TailleEcran[1] or balle_y < 0:
    balle_change_y = balle_change_y * -1
    if balle_x > TailleEcran[0] or balle_x < 0:
    balle_change_x = balle_change_x * -1
    #Collisions
    
    # AFFICHAGE
    # Dessine le fond
    screen.fill((0,0,0))
    screen.blit
    #Dessine des rectangles
    player1=pygame.draw.rect(screen,WHITE,(player1_x_coor, player1_y_coor, player_width, player_height))
    player2=pygame.draw.rect(screen,WHITE,(player2_x_coor, player2_y_coor, player_width, player_height))
    
    # dessine le palet de jeu
    pygame.draw.circle(screen, WHITE, [balle_x, balle_y], balle_rayon * 4)
    pygame.draw.circle(screen, BLACK, [balle_x, balle_y], balle_rayon)
    
    # Demande à Pygame de se caler sur 30 FPS
    clock.tick(30)
    # Bascule l’image dessinée à l’écran
    pygame.display.flip()
    #débogage
    
    # Ferme la fenêtre
    pygame.quit()
    Merci de bien vouloir me répondre, Bonne journée.

    -
    Edité par LucianDemir 20 octobre 2020 à 19:23:56

    • Partager sur Facebook
    • Partager sur Twitter
      18 octobre 2020 à 11:53:42

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: python;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        19 octobre 2020 à 16:17:16

        remet les indentations comme il faut sinon ça va être compliqué :/
        • Partager sur Facebook
        • Partager sur Twitter
          19 octobre 2020 à 19:44:45

          Désolé j'avais pas remarquer.
          # permet d’accéder aux fonctions du module pygame
          import pygame
          
          # Definit des couleurs RGB
          BLACK = [0, 0, 0]
          WHITE = [255, 255, 255]
          GREEN = [0, 255, 0]
          RED = [255, 0, 0]
          BLUE = [0, 0, 255]
          
          player_width= 15
          player_height = 90
          player1_x_coor=50 - player_width
          player1_y_coor= 300-45
          player1_y_speed = 0
          player2_x_coor=750- player_width
          player2_y_coor=300-45
          player2_y_speed = 0
          player_width = 15 #Largeur joueur
          player_height = 90 #Hauteur joueur
          
          
          # initialisation de l’écran de jeu
          pygame.init()
          # Initialise la fenêtre de jeu
          TailleEcran = [800, 600]
          screen = pygame.display.set_mode(TailleEcran)
          run=True
          
          screen.blit
          pygame.display.set_caption("Mega Ball")
          
          clock = pygame.time.Clock()
          # Position de départ
          balle_x = 400
          balle_y = 300
          ligne_x = 756
          ligne_y = 291
          joueur1 = pygame.draw.rect(screen, WHITE, (player1_x_coor, player1_y_coor, player_width, player_height))
          joueur2 = pygame.draw.rect(screen, WHITE, (player2_x_coor, player2_y_coor, player_width, player_height))
          # Vitesse et direction
          balle_change_x = 5
          balle_change_y = 5
          balle_rayon = 5
          balle_speed_y= 2
          
          
          if balle_y > 575 or balle_y < 30:
              balle_speed_y *= -1
          # Le jeu continue tant que l’utilisateur ne ferme pas la fenêtre
          Termine = False
          # BOUCLE PRINCIPALE DU PROGRAMME
          while not Termine:
              # recupère la liste des évènements du joueur
              event = pygame.event.Event(pygame.USEREVENT)
              # ÉVÈNEMENTS
              # détecte le clic sur le bouton close de la fenêtre
              for event in pygame.event.get():
                  if event.type == pygame.QUIT:
                      Termine = True
          
              # LOGIQUE
              # Déplace la balle
              balle_x += balle_change_x
              balle_y += balle_change_y
          
              # Rebond
              if balle_y > TailleEcran[1] or balle_y < 0:
                  balle_change_y = balle_change_y * -1
              if balle_x > TailleEcran[0] or balle_x < 0:
                  balle_change_x = balle_change_x * -1
                  
          
              # AFFICHAGE
              # Dessine le fond
              screen.fill((0,0,0))
              screen.blit
              #Dessine des rectangles
              player1=pygame.draw.rect(screen,WHITE,(player1_x_coor, player1_y_coor, player_width, player_height))
              player2=pygame.draw.rect(screen,WHITE,(player2_x_coor, player2_y_coor, player_width, player_height))
              pygame.key.get_pressed
              # dessine le palet de jeu
              pygame.draw.circle(screen, WHITE, [balle_x, balle_y], balle_rayon * 4)
              pygame.draw.circle(screen, BLACK, [balle_x, balle_y], balle_rayon)
          
              # Demande à Pygame de se caler sur 30 FPS
              clock.tick(30)
              # Bascule l’image dessinée à l’écran
              pygame.display.flip()
              #débogage
          
          # Ferme la fenêtre
          pygame.quit()

          -
          Edité par LucianDemir 19 octobre 2020 à 19:49:05

          • Partager sur Facebook
          • Partager sur Twitter
            21 octobre 2020 à 12:04:54

            Est-ce que quelqu'un sait coder du Pygame ? Pour pouvoir m'aider...
            • Partager sur Facebook
            • Partager sur Twitter

            Bloqué sur l'intégration des touches sur Python

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown