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

  1. #41
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par requie Voir le message
    Avec ce code, je souhaite que si les ids ne sont pas dans la liste, mon personne ne puisse se déplacer. Pb: la méthode append rajoute les ids dans la liste et mon personnage peut alors les traverser
    Vous postez du code sans l'avoir testé (il doit se vautrer à la ligne 4) ni même relu!
    En français, ce que vous voulez faire c'est quoi? Déplacer un personnage, puis regardez s'il y a collision avec les plateformes auquel cas on interdit le déplacement.
    Si on ne retrouve pas cette histoire là en lisant le code, çà ne fonctionnera pas.

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

  2. #42
    Membre à l'essai
    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
    Points : 11
    Points
    11
    Par défaut
    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
    X=[]
    def deplaceImage(dx,dy):
            global dessin3,heros,X,Y,x,y,imgPlateform
            x,y=dessin3.coords(heros)
            num_plat =dessin3.find_closest(x,y)
            coords_plat = dessin3.bbox(num_plat)
            coords_plat2 = find_overlapping(*coords_plat)
            X.append(coords_plat2)
            print (X)
            for n in X:
                if n in X:
                    break
                else:
                    dx=0
                    dy=0
     
            dessin3.move(heros,dx,dy)
    Je l'ai tester et il fonctionne parfaitement (enfin il ne plante pas mais n'effectue pas ce que je veux)
    En français, ce que vous voulez faire c'est quoi? Déplacer un personnage, puis regardez s'il y a collision avec les plateformes auquel cas on interdit le déplacement.
    Si on ne retrouve pas cette histoire là en lisant le code, çà ne fonctionnera pas.
    C'est exactement ce que je souhaite faire mais la "traduction" français-code semble être au dessus de mes capacités de codage.
    Merci de votre aide

  3. #43
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par requie Voir le message
    C'est exactement ce que je souhaite faire mais la "traduction" français-code semble être au dessus de mes capacités de codage.
    "programmer", c'est écrire des instructions que la machine va exécuter pour faire ce que vous attendez. Donc en relisant votre code vous devez non seulement imaginer ce que la machine va bien pouvoir en faire (et en plus y retrouver l'intention que vous aviez au départ).
    Expliquez moi ce que sont supposé faire ces lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            x,y=dessin3.coords(heros)
            num_plat =dessin3.find_closest(x,y)
            coords_plat = dessin3.bbox(num_plat)
            coords_plat2 = find_overlapping(*coords_plat)
    Puis essayez de m'expliquer ce que vous avez bien voulu faire là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            for n in X:
                if n in X:
                    break
                else:
                    dx=0
                    dy=0
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #44
    Membre à l'essai
    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
    Points : 11
    Points
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    x,y=dessin3.coords(heros)
            num_plat =dessin3.find_closest(x,y)
            coords_plat = dessin3.bbox(num_plat)
            coords_plat2 = find_overlapping(*coords_plat)
    La première ligne me donne les coordonnées de mon héros (coordonnées dynamique car le héros bouge.) Je cherche ensuite l'item le plus proche de mon héros avec la deuxième . Cependant il s'agit de mon héros car les coordonnées choisie sont sur le héros. La troisième ligne donne les coordonnées du rectangle encadrant l'image de mon héros.
    J'utilise alors la dernière ligne pour obtenir les identifiants numériques des items (en particulier les plateformes) entrant en contact avec le rectangle définissant mon héros).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for n in X:
                if n in X:
                    break
                else:
                    dx=0
                    dy=0
    Si la variable n est dans ma liste d'item, alors on arrête là la boucle, sinon , cela voudrait dire que mon héros est entré en contact avec une plateforme, je lui interdit alors le déplacement en rendant dx et dy nul

  5. #45
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par requie Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    x,y=dessin3.coords(heros)
            num_plat =dessin3.find_closest(x,y)
            coords_plat = dessin3.bbox(num_plat)
            coords_plat2 = find_overlapping(*coords_plat)
    La première ligne me donne les coordonnées de mon héros (coordonnées dynamique car le héros bouge.) Je cherche ensuite l'item le plus proche de mon héros avec la deuxième . Cependant il s'agit de mon héros car les coordonnées choisie sont sur le héros. La troisième ligne donne les coordonnées du rectangle encadrant l'image de mon héros.
    J'utilise alors la dernière ligne pour obtenir les identifiants numériques des items (en particulier les plateformes) entrant en contact avec le rectangle définissant mon héros).
    Donc déjà les deux premières lignes ne servent à rien et comme vous n'avez pas encore déplacé votre héros, vous ne détecterez pas une collision après ce non déplacement.


    Citation Envoyé par requie Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for n in X:
                if n in X:
                    break
                else:
                    dx=0
                    dy=0
    Si la variable n est dans ma liste d'item, alors on arrête là la boucle, sinon , cela voudrait dire que mon héros est entré en contact avec une plateforme, je lui interdit alors le déplacement en rendant dx et dy nul
    Essayez d'être un peu logique, si vous prenez un item dans X, c'est pas la peine de tester dans la ligne suivante s'il est toujours dans X. D'autant qu'il y a peu, on parlait de 2 listes (et c'était en français).

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

  6. #46
    Membre à l'essai
    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
    Points : 11
    Points
    11
    Par défaut
    Donc déjà les deux premières lignes ne servent à rien et comme vous n'avez pas encore déplacé votre héros, vous ne détecterez pas une collision après ce non déplacement.
    Mais elles me permettent d'initialiser les deux lignes suivantes. Je ne peux pas m'en passer.

    Essayez d'être un peu logique, si vous prenez un item dans X, c'est pas la peine de tester dans la ligne suivante s'il est toujours dans X. D'autant qu'il y a peu, on parlait de 2 listes (et c'était en français).
    Effectivement en y repensant, c'est complètement stupide et dépourvu de logique mais je pensais que comme je remplissait la liste X au fur et a mesure du déplacement et des contact avec les plateformes, les identifiants de celle-ci ne serait pas dans la liste.

  7. #47
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par requie Voir le message
    Mais elles me permettent d'initialiser les deux lignes suivantes. Je ne peux pas m'en passer.
    Ecrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            x,y=dessin3.coords(heros)
            num_plat =dessin3.find_closest(x,y)
    équivaut à écrire:
    donc on peut très bien s'en passer en réfléchissant un peu (et en relisant les échanges que nous avons eu hier sur .find_closest... à défaut, çà sert à rien d'essayer de vous expliquer un truc puisque vous n'imprimez pas grand chose).

    Citation Envoyé par requie Voir le message
    Effectivement en y repensant, c'est complètement stupide et dépourvu de logique mais je pensais que comme je remplissait la liste X au fur et a mesure du déplacement et des contact avec les plateformes, les identifiants de celle-ci ne serait pas dans la liste.
    Et qu'est ce qui vous empêche de réfléchir un peu au code que vous écrivez avant de poster n'importe quoi?

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

  8. #48
    Membre à l'essai
    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
    Points : 11
    Points
    11
    Par défaut
    donc on peut très bien s'en passer en réfléchissant un peu
    Effectivement étant donner que find_closest me renverra les coordonnées du rectangle définissant mon héros de toute façon. Je suis bête
    Et qu'est ce qui vous empêche de réfléchir un peu au code que vous écrivez avant de poster n'importe quoi?
    Eh bien j'essaye mais définir les conditions de collisions me bloque complètement.

  9. #49
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par requie Voir le message
    Eh bien j'essaye mais définir les conditions de collisions me bloque complètement.
    Il faut relire ce que je racontais dans cette réponse et aller se coucher. Le cerveau s'organise et réfléchit pendant le sommeil.

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

  10. #50
    Membre à l'essai
    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
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup pour votre aide mais etant donner que je n'avais pas compris ce message, je pense que je vais rester bloquer 😐.Toutefois, je vous remercie vraiment beaucoup pour m'avoir permis de comprendre le fonctionnement de find_closest ainsi que find_overlapping
    bonne soirée

  11. #51
    Membre à l'essai
    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
    Points : 11
    Points
    11
    Par défaut
    Rebonjour, j'ai finalement décider de ne pas abandonner et de continuer jusqu'à réussir (en espérant encore avoir un petit peu d'aide). J'ai donc relus le message que vous aviez envoyer et essayer des choses et voila a quoi je suis arriver.
    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
    X=[]
    L=[]
    def deplaceImage(dx,dy):
         global dessin3,heros,X,L
         coords_plat = dessin3.bbox(heros)
         coords_plat2 = dessin3.find_overlapping(*coords_plat)
         X.append([coords_plat2])
         L.append([coords_plat2][2])
         for n in X:
              if n in L:
                 dx=-dx
                 dy=-dy
              else:
                  break
         dessin3.move(heros,dx,dy)
    La liste L serait la liste contenant le troisième identifiant numérique de find_overlapping (correspondant au plateforme). Ainsi si n parcourt X (contenant le triplet d'id complet) et trouve un élément de L, alors le héros serait entrer en collision. Le problème que je rencontre ( et que je ne sais contourner) est qu'a l'origine, la liste L contient uniquement deux éléments (id du héros et du fond). Il y a donc logiquement un message d'erreur (tuple out of range) qui s'affiche.

  12. #52
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par requie Voir le message
    Le problème que je rencontre ( et que je ne sais contourner) est qu'a l'origine, la liste L contient uniquement deux éléments (id du héros et du fond). Il y a donc logiquement un message d'erreur (tuple out of range) qui s'affiche.
    Je ne comprends pas à quoi sert X: vous n'avez pas besoin d'un historique mais de savoir si en déplaçant heros, .find_overlapping retourne des identifiants de plateforme.
    Donc vous avez la liste des identifiants de plateformes et la liste des identifiants retournés par .find_overlapping *ET* une décision à prendre concernant le déplacement du héros avant l'appel à .find_overlapping car sinon, .find_overlapping retournera une information fausse.

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

  13. #53
    Membre à l'essai
    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
    Points : 11
    Points
    11
    Par défaut
    Donc vous avez la liste des identifiants de plateformes
    Eh bien justement non, je n'arrive pas a creer une liste avec uniquement les identifiants de plateformes.

    *ET* une décision à prendre concernant le déplacement du héros avant l'appel à .find_overlapping car sinon, .find_overlapping retournera une information fausse.
    J'effectue le test "Si la listes des identifiants retourner par find_overlapping contient des identifiants plateformes, alors j'effectue le changement dx=-dx et dy=-dy pour renvoyer le héros en chemin inverse".

    Merci beaucoup, je crois comprendre un peu mieux grâce a vous.

  14. #54
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par requie Voir le message
    Eh bien justement non, je n'arrive pas a creer une liste avec uniquement les identifiants de plateformes.
    Si vous avez crée les plateformes, vous auriez pu stockez les identifiants dans une liste.... Et c'était le sujet d'avant-hier où je vous avais fait jouer avec random.randint.
    De toutes façons, si vous n'avez pas créé cette liste, comment allez vous savoir si un des identifiants retournés par .find_overlapping est un des identifiants de plateforme?



    Citation Envoyé par requie Voir le message
    J'effectue le test "Si la listes des identifiants retourner par find_overlapping contient des identifiants plateformes, alors j'effectue le changement dx=-dx et dy=-dy pour renvoyer le héros en chemin inverse
    Au départ, vous vouliez interdire au héros d'empiéter sur les plateformes pas de lui faire faire marche arrière.
    De toutes façons, à l'instant t, votre héros n'empiète pas sur une plateforme, ce n'est que le déplacement qu'on provoque qui pourra se faire ou être interdit ou avoir un effet de bord d'inversion. Mais tant qu'il n'est pas fait (ou simulé) vous ne savez pas s'il va empiéter ou pas.
    note: La chose la plus difficile à comprendre dans ce code est probablement cette transition calculée entre l'instant t et l'instant t + 1 qu'on va valider ou pas.

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

  15. #55
    Membre à l'essai
    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
    Points : 11
    Points
    11
    Par défaut
    Si vous avez crée les plateformes, vous auriez pu stockez les identifiants dans une liste.... Et c'était le sujet d'avant-hier où je vous avais fait jouer avec random.randint.
    De toutes façons, si vous n'avez pas créé cette liste, comment allez vous savoir si un des identifiants retournés par .find_overlapping est un des identifiants de plateforme?
    J'ai compris comment remplir une liste par comprehension (avec random.randint) mais je ne sais pas comment selectionner les identifiants des plateformes pour les mettre dans la liste. Effectivement sans cela je ne peux pas effectuer ma condition.

    Au départ, vous vouliez interdire au héros d'empiéter sur les plateformes pas de lui faire faire marche arrière.
    De toutes façons, à l'instant t, votre héros n'empiète pas sur une plateforme, ce n'est que le déplacement qu'on provoque qui pourra se faire ou être interdit ou avoir un effet de bord d'inversion. Mais tant qu'il n'est pas fait (ou simulé) vous ne savez pas s'il va empiéter ou pas.
    Si je veux luis interdire a l'instant t+1, je dois rendre nul la variation de mouvement je pense non?(dx=0)

  16. #56
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par requie Voir le message
    J'ai compris comment remplir une liste par comprehension (avec random.randint) mais je ne sais pas comment selectionner les identifiants des plateformes pour les mettre dans la liste. Effectivement sans cela je ne peux pas effectuer ma condition.
    Et bien vous relisez ce qu'on a raconté à ce sujet...

    Citation Envoyé par requie Voir le message
    Si je veux luis interdire a l'instant t+1, je dois rendre nul la variation de mouvement je pense non?(dx=0)
    Et comment savez vous que le déplacement t+1 sera interdit (collision avec une plateforme) sans l'avoir effectué (ou simulé)?

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

  17. #57
    Membre à l'essai
    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
    Points : 11
    Points
    11
    Par défaut
    L = []
    for i in range(3):
    L.append( randint(1, 9) )
    print (L)
    Voila ce que l'on a fait avant hier. J'ai compris comment cela fonctionnait mais j'ai quelques problèmes: comment choisir le n dans range(n)? et par quoi remplacer randint pour remplir la liste des ids des plateformes? Ce sont les deux questions qui m’empêchent d'obtenir cette liste.

    Et comment savez vous que le déplacement t+1 sera interdit (collision avec une plateforme) sans l'avoir effectué (ou simulé)?
    Je pourrais peut être la simuler grâce a une boucle while ? (while collision n'est pas, deplacement normal puis if collision append dx=0)

  18. #58
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par requie Voir le message
    Voila ce que l'on a fait avant hier. J'ai compris comment cela fonctionnait mais j'ai quelques problèmes: comment choisir le n dans range(n)? et par quoi remplacer randint pour remplir la liste des ids des plateformes? Ce sont les deux questions qui m’empêchent d'obtenir cette liste.
    Dans le code que vous avez posté ici, vous aviez écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            for i in range(10):
                L.append( dessin3.create_image(w/2,h/2,image= imgPlateform )
            print (L)
    Donc vous savez....
    Mais comme la logique et vous ne font pas bon ménage, vous aviez collé ce code dans le callback deplacement plutôt que le faire à la création des plateformes qui est plus loin lignes 39-41.


    Citation Envoyé par requie Voir le message
    Je pourrais peut être la simuler grâce a une boucle while ? (while collision n'est pas, deplacement normal puis if collision append dx=0)
    Soit vous faites le .move que vous annulez si collision.
    Soit vous le simulez en ajoutant dx, dy à ce que retourne bbox.

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

  19. #59
    Membre à l'essai
    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
    Points : 11
    Points
    11
    Par défaut
    Mais comme la logique et vous ne font pas bon ménage, vous aviez collé ce code dans le callback deplacement plutôt que le faire à la création des plateformes qui est plus loin lignes 39-41.
    Effectivement la logique et moi , c'est loin d'etre une histoire d'amour. J'aurai donc du placer comme cela ces lignes?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        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)
        for i in range(10):
             L.append( dessin3.create_image(w/2,h/2,image= imgPlateform )
        print (L)
    Mais la valeur de n ici (n=10) ainsi que les x et y (w/2 et h/2) sont totalement arbitraire non? Et cette nouvelle liste L contiendra les ids des plateformes?

    Soit vous faites le .move que vous annulez si collision.
    Soit vous le simulez en ajoutant dx, dy à ce que retourne bbox.
    Merci, je pense avoir compris ce point grâce a vous.

  20. #60
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par requie Voir le message
    Effectivement la logique et moi , c'est loin d'etre une histoire d'amour.
    Pourquoi avoir choisi une spécialité ISN? vous devez être aussi un peu masochiste.

    Citation Envoyé par requie Voir le message
    J'aurai donc du placer comme cela ces lignes?:
    La c'est plus de la logique mais de la lecture...
    Si vous créez vos plateformes à la ligne 5 pourquoi ne pas stocker les identifiants de ces dessin3.create_XXX là ?

    - 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