Parallax python

Signaler
-
Messages postés
15275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 avril 2021
-
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

Messages postés
15275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 avril 2021
836
bonjour,
merci d'utiliser les balises quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
es-tu certain d'avoir partagé ton code complet?

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()
Messages postés
15275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 avril 2021
836
que veux-tu dire par "je dois utiliser une def bien précise"?
as-tu une question?
>
Messages postés
15275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 avril 2021

Pour 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..
Messages postés
15275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 avril 2021
836 > Safiadelmes
l'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?
>
Messages postés
15275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 avril 2021

Le 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.
Messages postés
15275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 avril 2021
836 > Safiadelmes
as-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?

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.
Messages postés
15275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 avril 2021
836
je pense que cet exercice ne peut être fait que par quelqu'un qui a déjà appris python.