Prise en compte d'un obstacle (pygame)

alex -  
 alex -
Bonjour, je voudrais savoir comment prendre en compte un obstacle en utilisant pygame:
mon personnage rencontre une barrière et la seule manière de l'éviter c'est de sauter. Je veut que si il n'évite pas la barrière, mon personnage sera bloqué.

pour savoir, l'obstacle serat une image.

1 réponse

  1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Bonjour alex,

    As-tu commencé à faire quelque chose ?

    As-tu un début de code à nous montrer ?

    Si oui, l'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
    mode d'emploi:
    https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

    Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :

    def test():
        print('test')
    
    test()
    
    0
    1. alex
       
      je ne pense pas que mon code soit utile mais si tu le demande alors le voici :
      main.py:
      import pygame, sys
      from game import Game
      
      pygame.init()
      
      screen = pygame.display.set_mode((1199, 800))
      
      game = Game
      
      running = True 
      
      while running:
          pygame.display.flip() 
          screen.blit(game.player.skin, game.player.rect)
      
          if game.pressed.get(pygame.K_q):
              game.player.move_left()
          elif game.pressed.get(pygame.K_d):
              game.player.move_right()
      
          for event in pygame.event.get():
      
              if event.type == pygame.QUIT: 
                  running = False 
      
              if event.type == pygame.KEYDOWN:
                  game.pressed[event.key] = True
              elif event.type == pygame.KEYUP:
                  game.pressed[event.key] = False
      pygame.quit() 
      sys.exit()



      game.py:
      import pygame
      from player import Player
      
      class Game():
      
          player = Player()
          pressed = {}



      player.py:
      import pygame
      
      class Player(pygame.sprite.Sprite):
      
          def __init__(self):
              super().__init__()
              self.speed = 1.5
              self.skin = pygame.image.load('player/player_right.png')
              self.rect = self.skin.get_rect()
              self.rect.x = 100.0
              self.posx = self.rect.x
              self.rect.y = 670.0
      
          def move_left(self):
      
              self.posx -= self.speed
              self.rect.x = self.posx
              self.skin = pygame.image.load('player/player_left.png')
      
          def move_right(self):
      
              self.posx += self.speed
              self.rect.x = self.posx
              self.skin = pygame.image.load('player/player_right.png')

      -je n'ai pas encore mis d'obstacle et je ne compte ne pas en mettre, c'est juste que je vais mettre un terrain (un peu cubique) et faire en sorte qu'il ne peut pas le traverser.
      -dans le fichier player.py, j'ai créé une deuxième variable "posx" qui sert a ce que la variable "rect.x" soit un float.
      0