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 :

contact entre des pièces Tetris


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut contact entre des pièces Tetris
    Bonjour à tous !
    Je débute en Python et je me suis donc lancé comme défi de faire une reproduction du jeu Tetris avec tkinter afin de consolider ce que je savais déja et d'apprendre de nouvelles choses. J'ai donc découvert la fonction find_overlapping afin de trouver si la pièce qui tombe entre en contact avec une autre et d'arrêter sa chute. Malheureusement, la pièce s'arrête également lorsque l'un de ses coins touche un coin d'une autre pièce, ce qui donne parfois des pièces posées au dessus du vide. je n'arrive pas à trouver comment régler cela,
    merci de votre aide ^^

    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
     
        carre1 = can1.create_rectangle(120,0,180,30, fill="red")
        i=1
        contact=0
        while contact==0:
            can1.update()
            X1=120
            Y1=-30+30*i
            X2=180
            Y2=30+30*i
     
     
            can1.coords(carre1,X1,Y1,X2,Y2)
            time.sleep(0.5)
            i+=1
     
            can1.bind("<Left>", gauche)
            can1.bind("<Right>",droite)
     
            if len(can1.find_overlapping(can1.coords(carre1)[0],can1.coords(carre1)[1],can1.coords(carre1)[2],can1.coords(carre1)[3]))>1:
                contact=1

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par filandouss Voir le message
    Malheureusement, la pièce s'arrête également lorsque l'un de ses coins touche un coin d'une autre pièce, ce qui donne parfois des pièces posées au dessus du vide. je n'arrive pas à trouver comment régler cela
    Il faut pouvoir trier dans les identifiants que retourne .find_overlapping pour sélectionner ceux qui traduisent une collision. Et pour cela, par exemple, classer les différents items du canvas dans des listes (ou des ensembles).

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Comment dois-je les classer ?
    Et en quoi cela va-t-il m'aider ?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Prenez la page de Wiki qui raconte ce qu'est un Tetris.
    La chute du tetrimino s'arrête lorsqu'un de ses carrés "en bas" touche un carré déjà rempli ou le bas d'un tableau 10 lignes x 22 colonnes. Comme les tetriminos sont des assemblages de carrés occupant 2 à 4 colonnes, il suffit de regarder si les cases qui sont juste dessous sont occupées ou pas.
    Si vous voulez absolument utiliser .find_overlapping, il va falloir trouver les items qui sont dans ces colonnes (une liste donc) pour trier ce qui est retourné.

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

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Points : 649
    Points
    649
    Par défaut Simplification
    Pour débuter faut simplifier. Tkinter pour afficher et des structures pour gérer tes données. De simples tableaux suffisent pour la pièce et le puits en contenant. En plus vu comment tu appelles la fonction revoir tes bases est important.

Discussions similaires

  1. [OL-2013] Partager des contacts entre plusieurs BAL(E)
    Par tanaka59 dans le forum Outlook
    Réponses: 1
    Dernier message: 09/02/2016, 11h29
  2. Modélisation des pièces courante et suivante d'un jeu Tetris
    Par pitchu dans le forum Diagrammes de Classes
    Réponses: 2
    Dernier message: 10/03/2015, 18h23
  3. Comment faire un retour ligne entre des " ??
    Par DrTank dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 09/05/2005, 09h35
  4. Empêcher le retour á la ligne entre des balises <Hx> e
    Par thomas_chamas dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 29/11/2004, 16h39
  5. affichage des pièces jointe sous outllook 2000
    Par darkbm dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 29/10/2003, 11h32

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