Parallax python

Bonjour,
j'aimerais créer un défilement de mon fond à l'infini pour un petit jeu comme sonic par exemple, mais je dois utiliser une def bien précise mais que je ne comprend pas:
def parallaxe(window, image, position_x, speed):
window = ecran
image1 = load_image('background_fix.png', ecran)
image2 = load_image('background_middle.png', ecran)
image3 = load_image('background_front.png', ecran)
position_x = 0
speed = 10
Mais cela ne fonctionne pas, si quelqu'un peut m'aider ^^

3 réponses

  1. Bonjour, effectivement je l'ai poster un peu trop vite et je n'ai pas fait attention mais voilà je répond à ce message en repostant mon code complet et comme il le faut ^^
    import pygame
    import os, sys
    
    def main():
        pygame.init()
    
        ecran = pygame.display.set_mode((1200, 600))
        pygame.display.set_caption('Le rêve de Robotnik')
    
        jeu_en_cours = True
    
        while jeu_en_cours :
    
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    jeu_en_cours = FALSE
    
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_ESCAPE:
                        jeu_en_cours = False
    
            image1 = load_image('background_fix.png', ecran)
            ecran.blit(image1, (0, 0))
            image2 = load_image('background_middle.png', ecran)
            ecran.blit(image2, (0, 0))
            image3 = load_image('background_front.png', ecran)
            ecran.blit(image3, (0, 0))
            pygame.display.flip()
    
        pygame.quit()
    
    def load_image(name, ecran, colorkey=None):
        fullname = os.path.join('resources/', name)
        image = pygame.image.load(fullname)
        return image
    
    def parallaxe(window, image, position_x, speed):
        window = ecran
        image1 = load_image('background_fix.png', ecran)
        image2 = load_image('background_middle.png', ecran)
        image3 = load_image('background_front.png', ecran)
        position_x = 0
        speed = 10
    
    
        screen    
    
    if __name__ == "__main__":
        main()
    
    1. Contributeur
      que veux-tu dire par "je dois utiliser une def bien précise"?
      as-tu une question?
    2. @yg_bePour faire un effet parallax je doit utiliser cette def là :
      def parallaxe (window, image, position_x, speed):
      

      C'est pour un exercice d'entraînement donc je ne peux pas utiliser une autre alternative que cette def là, mais je ne sais pas du tout comment l'utiliser..
    3. Contributeur
      @Safiadelmesl'exercice ne servira à rien si nous le faisons à ta place.

      as-tu compris ce que sont chacun des paramètres de la fonction?
      sais-tu comment faire appel à cette fonction?
      quel est le rôle du reste du code?
    4. @yg_beLe début de monde permet de superposer mes trois images de fonds .
      Je pense pas avoir compris ce qu'il signifier vraiment et je débute en python du coup je ne voit pas trop comment les définir au niveau de la syntaxe.
    5. Contributeur
      @Safiadelmesas-tu l'énoncé de l'exercice?
      as-tu compris ce qu'était une parallaxe?
      si tu débutes en python, n'est-il pas préférable de faire d'abord des exercices plus simples?
  2. Oui un parrallaxe permet de créer un effet de défilement des fonds pour une impression d'avancer.
    Dans mon sujet j'ai eu pour consigne de superposer mes 3 images de fond, puis d'utiliser cette def parrallaxe pour afficher mes images puis pour créer l'effet de défilement en leur donnant une vitesse.
    Justement c'est un exercice qui ma été donner par mon école pour que je puisse débuter en python.
    1. Contributeur
      je pense que cet exercice ne peut être fait que par quelqu'un qui a déjà appris python.