IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Problème importation d'image pygame [Python 3.X]


Sujet :

Programmation multimédia/Jeux Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 51
    Par défaut Problème importation d'image pygame
    Bonjour, je rencontre actuellement un problème d'importation d'image en python avec pygame. D'habitude quand je le fais ça marche sans soucis mais là ça ne veut pas et je ne sais pas pourquoi...

    J'entre dans la commande pygame.image.load() l'adresse de mon image. Elle se trouve rangée dans plusieurs dossier donc j'indique le chemin sans soucis (pas la première fois que je le fais) sauf que là la console me retourne l'erreur suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    image = pygame.image.load(filename)
    FileNotFoundError: No such file or directory.
    J'ai alors pensé que j'avais du faire une erreur dans le chemin de l'image alors pour vérifier je l'ai mis dans le répertoire courant de mon programme. Il me sort la même erreur... L'image est au format PNG et à une dimension de 675x781.

    le code :


    fichier main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import pygame
    import jeu
    import os
     
     
    if __name__ == "__main__":
        pygame.init()
        jeu = jeu.Jeu()
        jeu.run()

    fichier jeu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    import pygame
    import pytmx
    import pyscroll
    import joueur
    import os
     
    class Jeu:
     
        def __init__(self):
            #générer la fenêtre du jeu
            self.ecran = pygame.display.set_mode((800,800))#range l'"cran dans l'objet courant self
            pygame.display.set_caption("Jeu de Matthieu")
     
            #charger la carte (tmx)
     
            tmx_data = pytmx.util_pygame.load_pygame("carte\depart_jeu.tmx")#permet d'importer et charger la carte
            carte_data = pyscroll.data.TiledMapData(tmx_data)#récupère les données tmx pour extraire la carte
            carte_layer = pyscroll.orthographic.BufferedRenderer(carte_data, self.ecran.get_size())#contient tous les calques de la carte regroupés sur la surface
            carte_layer.zoom = 2 #permet de zoomer sur la carte
     
     
            #générer un joueur
            self.joueur = joueur.Joueur()
     
            #dessiner le groupe de calque
            self.groupe = pyscroll.PyscrollGroup(map_layer = carte_layer, default_layer = 2)#default_layer permet de donner le niveau de calque d'un calque comme le perso
            self.groupe.add(self.joueur)
     
        def run(self):
            #générer la boucle du jeu
            jeu = True
     
            while jeu:
     
                self.groupe.draw(self.ecran)#dessine les calques sur l'écran
                pygame.display.flip()
     
                for event in pygame.event.get():
                    if event.type == pygame.QUIT:
                        jeu = False
     
            pygame.quit()

    fichier joueur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    import pygame
    import os
     
    class Joueur(pygame.sprite.Sprite):
     
        def __init__(self):
            super().__init__()
            self.sprite_sheet = pygame.image.load("nouvel essai jeu de role/personnage/_PNG/1/1_IDLE_000.png")
            self.image = self.get_image(0,0)
            self.rect = self.image.get_rect()
     
     
        def get_image(self, x, y):
            image = pygame.Surface([32,32])
            image.blit(self.sprite_sheet, (0,0), (x, y, 32, 32))
            return image
    Merci beaucoup pour le temps pris pour lire et pour toutes les réponses que je pourrais avoir

    P.S : je tiens à préciser que j'ai essayer de changer le sens des slash dans l'importation d'image mais ça n'a rien changé

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    donc j'indique le chemin sans soucis (pas la première fois que je le fais) sauf que là la console me retourne l'erreur suivante
    Vous donnez un nom de fichier relatif à un répertoire par défaut qui n'est pas (toujours) le répertoire du script principal.
    La variable globale __file__ permet de récupérer le chemin du script principal, d'en extraire le répertoire et d'interpoler le chemin vers vos données.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 51
    Par défaut
    alors j'ai testé et tous mes fichier main/jeu/joueur sont bien répertoriés au même endroit. Les dossiers contenant les images sont un niveau en dessous donc théoriquement je ne devrais pas avoir de soucis pour les récupérer. Mais le problème persiste toujours malheureusement. J'ai essayé en mettant dans mon dossier au même niveau que mes fichiers de code une autre image provenant d'une source différente et même sur celle-là ça ne marche pas, je ne comprend pas...

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Citation Envoyé par Goulthard Voir le message
    Les dossiers contenant les images sont un niveau en dessous
    Un niveau en dessous de quel répertoire?
    Le répertoire courant sera affiché via print(os.getcwd()).
    Celui du script principal via print(__file__).

    Les chemins relatifs sont "calculés" à partir du répertoire courant (et non de celui du script).

    A vous d'essayer de comprendre un peu (et de revoir le chapitre sur les fichiers de votre tuto. préféré pour réviser tout ça).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 51
    Par défaut
    Ah surement une lacune de ma part, je pensais que le répertoire courant était là où se trouvait le script principal.

    Pour faire simple j'ai comme ceci :

    scripts et dossier image (au même niveau).

    je veux récupérer une image qui se trouve dans un dossier contenu dans le dossier image. Ca je sais le faire car d'habitude ça marche sans soucis hors là il me retourne l'erreur que je vous ai donné.

    J'ai essayé de mettre l'image là ou se trouve les scripts et le dossier image, j'ai bien sur changé le chemin d'appel de l'image mais là encore il ne trouve pas l'image... pourtant j'ai bien vérifié que mes 3 scripts étaient répertoriés aux même endroits

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Citation Envoyé par Goulthard Voir le message
    Ah surement une lacune de ma part, je pensais que le répertoire courant était là où se trouvait le script principal.
    C'est une lacune à combler et je vous ai donné un chemin à suivre...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] Problème d'importation d'image avec Tkinter
    Par plijyf2 dans le forum Général Python
    Réponses: 5
    Dernier message: 07/01/2022, 19h56
  2. [Python 3.X] Problème d'affichage image Pygame
    Par Patouillou dans le forum Programmation multimédia/Jeux
    Réponses: 11
    Dernier message: 09/04/2019, 13h33
  3. [PrestaShop] problème d'import des images depuis csv sur OVH (Erreur lors de la copie de l'image)
    Par blase201 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 04/08/2014, 16h39
  4. Problème import image
    Par paintbox dans le forum Windows Forms
    Réponses: 18
    Dernier message: 06/10/2011, 15h54
  5. [FLASH MX] Problème pour défilement images
    Par Buzhug dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2004, 21h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo