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

Tkinter Python Discussion :

problème de détection de plateforme


Sujet :

Tkinter 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
    Décembre 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 50
    Par défaut problème de détection de plateforme
    Bonjour
    Je suis en pleine creation d'un jeu et je rencontre un problème lorsque je veux faire détecter a mon héros une plateforme. En effet, lorsque je deplace mon heros, il traverse tout simplement l'image de la plateforme tandis que je voudrais qu'elle lui serve de "sol". J'ai alors penser a utiliser la fonction find_closest et la fonction bbox pour interdire le rectangle correspondant a la plateforme la plus proche de mon heros mais une erreur s'affiche lorsque je lance mon jeu. Pourriez vous m'aider s'il vous plait.
    Voici le code:
    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
     
    X=[]
    Y=[]
    def traitement2(event):
        global  dessin3,heros
        pas = 10
        def deplaceImage(dx,dy):
            global dessin3,heros,X,Y,x,y
            x,y=heros.coords(dessin3)
            num_plat =dessin3.find_closest(x,y)
            coords_plat = dessin3.bbox(num_plat)
            print(coords_plat)
            X.append([coords_plat[0],coords_plat[2]])
            Y.append([coords_plat[1],coords_plat[3]])
            dessin3.move(heros,dx,dy)
        def clavier(event,Dx,Dy):
            deplaceImage(Dx,Dy)
     
        monJeu.bind("<Left>", lambda event : clavier(event, -pas,0))
        monJeu.bind("<Right>", lambda event : clavier(event, pas,0))
        monJeu.bind("<Down>", lambda event : clavier(event, 0,pas))
        monJeu.bind("<Up>", lambda event : clavier(event, 0,-10*pas))
     
     
     
        monJeu= Toplevel()
        monJeu.focus_force()     
        dessin3 = Canvas(monJeu,bg='darkgrey',height=800,width=800)
        dessin3.pack()
        imgfond=PhotoImage(file=chemin_fichier+'\\fond.png')
        fond = dessin3.create_image(400,800, image=imgfond,anchor='s')
        imgHeros =PhotoImage(file=chemin_fichier+'\\heros.png') 
        Heros = dessin3.create_image(400,670, image=imgHeros)
     
     
        imgPlateform =PhotoImage(file=chemin_fichier+'\\plateforme.png')
        Liste_coord= [[500,500],[250,450],[150,150],[230,300],[400,400],[700,150],[650,300],[400,200]]# Creation des plateformes
        for k in Liste_coord:
            dessin3.create_image(k[0],k[1] ,image=imgPlateform)

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    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 681
    Par défaut
    Salut,

    Citation Envoyé par requie Voir le message
    mais une erreur s'affiche lorsque je lance mon jeu.
    Poster le traceback de l'erreur n'est pas une option surtout lorsque votre code est incomplet.

    Citation Envoyé par requie Voir le message
    J'ai alors penser a utiliser la fonction find_closest et la fonction bbox pour interdire le rectangle correspondant a la plateforme la plus proche de mon heros mais une erreur s'affiche lorsque je lance mon jeu.
    Les fonctionnalités que vous devez explorer et apprendre à maîtriser sont indépendantes du jeu que vous voulez créer.
    Vous pourriez donc commencer à les explorer en regardant quoi faire et ce qu'il se passe lorsque vous utilisez des figures simples comme elipse, rectangle, polygon,...
    En plus çà ferait de petits codes que vous pourriez poster complètement... et çà aiderait à vous aider.

    - 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
    Décembre 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 50
    Par défaut
    Salut,
    C'est justement en étudiant le cas de l'interdiction sur ces figures "simples" (des rectangles entre autre) que je me suis demander si il m'etais possible de faire cela avec ces fonctions sur une image de plateforme (qui est assez similaire au plateforme). Cependant, je n'y suis pas parvenu.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    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 681
    Par défaut
    Citation Envoyé par requie Voir le message
    C'est justement en étudiant le cas de l'interdiction sur ces figures "simples" (des rectangles entre autre) que je me suis demander si il m'etais possible de faire cela avec ces fonctions sur une image de plateforme (qui est assez similaire au plateforme). Cependant, je n'y suis pas parvenu.
    Si vous n'y arrivez pas encore avec des figures simples, pas la peine d'essayer de faire plus compliqué.... Et çà serait mieux de partir sur le code que vous avez essayé de faire (avec des figures simples) pour voir ce que vous n'avez pas compris... et essayer de vous l'expliquer.

    - 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
    Décembre 2016
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 50
    Par défaut
    Salut,
    j'ai résolu le problème de l'erreur mais la fonction bbox me retourne les coordonnées du rectangle qui défini l'image de mon héros et non pas ceux des plateforme les plus proche (en ayant les coordonnées des plateformes, je pourrais alors "interdire" a mon héros ces zones.)
    Voici la portion de code qui pose problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            global dessin3,heros,x,y
            x,y=dessin3.coords(heros)
            num_plat =dessin3.find_closest(x,y)
            coords_plat = dessin3.bbox(num_plat)
            print(coords_plat)
     
     
    imgPlateform =PhotoImage(file=chemin_fichier+'\\plateforme.png')
        Liste_coord= [[500,500],[250,450],[150,150],[230,300],[400,400],[700,150],[650,300],[400,200]]# Creation des plateformes
        for k in Liste_coord:
            dessin3.create_image(k[0],k[1] ,image=imgPlateform)
    Comment puis-je modifier ce script pour que l'instruction print me renvoi les coordonnées du rectangle de la plateforme la plus proche de mon héros s'il vous plait?

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    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 681
    Par défaut
    Citation Envoyé par requie Voir le message
    Comment puis-je modifier ce script pour que l'instruction print me renvoi les coordonnées du rectangle de la plateforme la plus proche de mon héros s'il vous plait?
    C'est ce que devrait faire votre code mais comme on ne peut pas l'exécuter et que vous ne décrivez pas le problème rencontré... pas possible de vous aider.
    note: je suppose que vous avez lu la documentation de .find_closest et que vous avez compris qu'en prenant un point qui est sur un item .find_closest va difficilement vous retourner autre chose, non?

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

Discussions similaires

  1. Problème de détection de mon réseau WIFI
    Par yaboki dans le forum Hardware
    Réponses: 6
    Dernier message: 06/07/2006, 11h43
  2. problème de détection de boutons radios
    Par boss_gama dans le forum ASP
    Réponses: 2
    Dernier message: 14/06/2006, 11h49
  3. [UBUNTU] Problème de détection souris/clavier
    Par Merlin dans le forum Ubuntu
    Réponses: 4
    Dernier message: 19/04/2006, 19h23
  4. [FAQ]problème de détection réseau.
    Par mickael777 dans le forum MFC
    Réponses: 6
    Dernier message: 13/05/2005, 14h43
  5. Problème de détection de nouveau processeur
    Par zakfa dans le forum Composants
    Réponses: 12
    Dernier message: 24/01/2005, 17h09

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