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 :

Jeu de tanks, destruction de la balle lors d'un impact


Sujet :

Tkinter Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Jeu de tanks, destruction de la balle lors d'un impact
    Bonjour,

    Je voudrais faire en sorte que lorsque mes bullets touchent un des murs, elles se détruisent. Mais je n'y arrive pas. Quelqu'un saurait il m'aider?
    Pour lancer le code, il faut que l'image et le fichier txt soit dans le même dossier que le code.

    Merci
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  2. #2
    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
    Salut,

    Citation Envoyé par tomtom0709 Voir le message
    Je voudrais faire en sorte que lorsque mes bullets touchent un des murs, elles se détruisent. Mais je n'y arrive pas. Quelqu'un saurait il m'aider?
    Pour lancer le code, il faut que l'image et le fichier txt soit dans le même dossier que le code.
    Vos histoires de tanks et de bullets n'ont aucune importance.
    L'important est de savoir comment vous les avez représentés dans votre code
    Vous avez choisi d'utiliser un Canvas tkinter, où tanks et bullets sont des items du Canvas de type rectangle et oval.

    Et la question devient alors comment supprimer un item du Canvas.
    Pour çà on ouvre la documentation et sachant que chacun des items crées avec .create_XXX retourne un identifiant (que vous avez soigneusement conservé dans une liste), Canvas.delete(identifiant) va supprimer l'item.

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

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Vos histoires de tanks et de bullets n'ont aucune importance.
    L'important est de savoir comment vous les avez représentés dans votre code
    Vous avez choisi d'utiliser un Canvas tkinter, où tanks et bullets sont des items du Canvas de type rectangle et oval.

    Et la question devient alors comment supprimer un item du Canvas.
    Pour çà on ouvre la documentation et sachant que chacun des items crées avec .create_XXX retourne un identifiant (que vous avez soigneusement conservé dans une liste), Canvas.delete(identifiant) va supprimer l'item.

    - W
    Bonjour,

    Je vous remercie de votre réponse. Mais je n'arrive pas à lier les coordonnées des bullets avec ceux des murs afin de détruire des bullets.
    Savez vous comment je dois faire?

    Merci d'avance

  4. #4
    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
    Salut,

    Citation Envoyé par tomtom0709 Voir le message
    Je vous remercie de votre réponse. Mais je n'arrive pas à lier les coordonnées des bullets avec ceux des murs afin de détruire des bullets.
    Savez vous comment je dois faire?
    canvas.bbox(item) vous retourne x0, y0, x1, y1 qui sont les coordonnées du rectangle qui "bornent" l'item.
    Vous les comparez à ce que vous voulez (les murs) par exemple.

    Et pour essayer de comprendre, essayez de fabriquer un exemple où des disques sont fabriqués toutes les secondes et partent dans une direction aléatoire et disparaissent lorsqu'ils sortent d'un périmètre défini.

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

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    canvas.bbox(item) vous retourne x0, y0, x1, y1 qui sont les coordonnées du rectangle qui "bornent" l'item.
    Vous les comparez à ce que vous voulez (les murs) par exemple.

    Et pour essayer de comprendre, essayez de fabriquer un exemple où des disques sont fabriqués toutes les secondes et partent dans une direction aléatoire et disparaissent lorsqu'ils sortent d'un périmètre défini.

    - W
    Merci. Je viens d'essayer sur mon code mais quand je demande d'imprimer le coordonnées, cela me renvoie None

  6. #6
    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 tomtom0709 Voir le message
    Merci. Je viens d'essayer sur mon code mais quand je demande d'imprimer le coordonnées, cela me renvoie None
    Voici un exemple de 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
    from tkinter import *
    import random
     
     
    def create_ball():
        global dx, dy
        dx = random.choice([-1, 1]) * random.randrange(4, 10)
        dy = random.choice([-1, 1]) * random.randrange(4, 10)
        color = random.choice([ 'red', 'blue', 'green' ])
        canvas.create_oval(-10, -10, 10, 10, fill=color, tag='ball')
     
    def move_ball():
        x0, y0, x1, y1 = canvas.bbox('ball')
     
        if x0 < -100 or x1 > 100 or y0 < -100 or y1 > 100:
           canvas.delete('ball')
           canvas.after(100, create_ball)
        else:
            canvas.move('ball', dx, dy)
     
        canvas.after(200, move_ball)
     
    canvas = Canvas(width=300, height=300, scrollregion=(-150, -150, 150, 150), bg='grey')
    canvas.create_rectangle(-100, -100, 100, 100, fill='grey90')
    canvas.pack()
    create_ball()
    move_ball()
    mainloop()
    à vous de le comprendre et l'adapter.

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

Discussions similaires

  1. Unite 2015 : créer un jeu de tanks 2D - Configuration de la scène
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 14/01/2016, 17h36
  2. Destruction d'objet inattendue lors d'un multithread
    Par Jimmy91 dans le forum Threads & Processus
    Réponses: 5
    Dernier message: 04/03/2015, 10h17
  3. Jeu de labyrinthe - Animation d'une balle.
    Par FatP0ney dans le forum Tkinter
    Réponses: 84
    Dernier message: 18/06/2014, 08h43
  4. Réponses: 2
    Dernier message: 17/05/2010, 22h23
  5. Réponses: 1
    Dernier message: 09/07/2005, 18h16

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