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 :

Besoin d'aide pour faire sauter l'oiseau (Flappy bird)


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut Besoin d'aide pour faire sauter l'oiseau (Flappy bird)
    Bonjour,depuis peu, je m’entraîne à coder en utilisant python et tkinter. Je me suis alors lancé comme défi de programmer le jeu Flappy Bird . Jeu qui me semblait facile à coder jusqu'au moment où j'ai du m'occuper de la partie "contrôle de l'oiseau". Pour les personnes qui ne connaissent pas Flappy bird (on sait jamais) l'oiseau reste toujours à la même position, il ne fait que sauter sur place quand on clique sur la barre espace mais il tombe aussi continuellement.
    Pour l'instant, j'ai réussi à faire en sorte qu'il tombe continuellement par contre j'ai besoin d'aide pour faire sauter mon oiseau car ça fait une semaine que je coinces là-dessus

    Merci d'avance aux personnes qui m'aideront

    Voici ma fonction pour que l'oiseau puisse tomber
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def deplacement():
        #Met en place les coordonnées de l'image
        img_coords=canvas.coords(image_oiseau)
        #Met en place la largeur de l'image
        img_width=O.width()
     
     
        if img_coords[0]+img_width >= 96:
            #0 représente le déplacment de X en abscisse et 5 est Y en ordonnée
            canvas.move(image_oiseau,0,5)
            #Il se déplace toutes les 20 millisecondes
            canvas.after (20,deplacement)
    deplacement()

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

    Il faut essayer d'écrire un code semblable à celui présenté dans cette discussion.

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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut
    Merci Wiztricks, je reviendrais vous poser des questions si jamais j'ai besoin d'aide

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Il faut essayer d'écrire un code semblable à celui présenté dans cette discussion.

    - W
    Rebonjour Wiztricks, pouvez-vous me drire à quoi sert le "inprogress" qu'il y a dans votre programme ?

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

    Citation Envoyé par JoueurdeFeu Voir le message
    Rebonjour Wiztricks, pouvez-vous me drire à quoi sert le "inprogress" qu'il y a dans votre programme ?
    Juste à éviter de déclencher un nouveau saut pendant qu'un autre est déjà en cours de traitement.

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

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut
    Bonjour wiztricks, à l'heure actuelle, j'ai réussi à modifier le programme que vous m'avez conseillé d'aller voir, j'ai réussi à faire en sorte que le carrée bleu ait un mouvement similaire à celui de l'oiseau de Flappy bird. Mais, j'ai essayé de copier la partie qui fait sauter le carré bleu et de l'insérer dans le programme de Flappy bird mais je n'arrive pas à associer la fonction sauter à l'oiseau. Pouvez-vous m'aider ?
    Voici mon programme :
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    # On importe Tkinter
    from tkinter import *
    import random
     
    # On crée une fenêtre, racine de notre interface
    fenetre = Tk()
     
    #On importe l'image représentant le fond du jeu
    fond = PhotoImage(file="background-day.png")
    oiseau = PhotoImage(file="yellowbird-midflap.png")
    oiseau2 = PhotoImage(file="bluebird-midflap.png")
    oiseau3 = PhotoImage(file="redbird-midflap.png")
     
    # interface racine
    canvas = Canvas(fenetre, width=288, height=512)
    canvas.create_image(144,256, anchor=CENTER,image=fond)
     
    oiseau=[oiseau,oiseau2,oiseau3]
    O=random.choice(oiseau)
    image_oiseau=canvas.create_image(67,244, anchor=S,image=O) 
     
     
     
    def deplacement():
        #Met en place les coordonnées de l'image
        img_coords=canvas.coords(image_oiseau)
        #Met en place la largeur de l'image
        img_width=O.width()
     
        #A revoir dans la vidéo
        if img_coords[0]+img_width >= 96:
            #0 représente le déplacmeent de X en abscisse et5 est Y en ordonnée
            canvas.move(image_oiseau,0,5)
            #Il se déplace toutes les 20 millisecondes
            canvas.after (20,deplacement)
     
    def sauter(event):
     
     
        def gen_move():
            for n in range(256):
                if n <= 416:
                    yield -4
                else:
                    yield 4
     
        g_move = gen_move()
     
        def _saut(delay=40):
            global inprogress
     
            try:
                direction = next(g_move)
                canvas.move('obstacle', 0, direction * 2)
                root.after(delay, _saut)
            except StopIteration:
                inprogress = False
     
        _saut()    
     
     
     
     
     
    # On affiche le label dans la fenêtre
     
     
    deplacement()
    canvas.pack()
    canvas.bind("<space>",sauter) 
     
     
    # On démarre la boucle Tkinter qui s'interompt quand on ferme la fenêtre
    fenetre.mainloop()
    Voici les images utiles au bon fonctionnement de mon programmePièce jointe 464539Pièce jointe 464540Pièce jointe 464543Pièce jointe 464546

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

    Citation Envoyé par JoueurdeFeu Voir le message
    Mais, j'ai essayé de copier la partie qui fait sauter le carré bleu et de l'insérer dans le programme de Flappy bird mais je n'arrive pas à associer la fonction sauter à l'oiseau.
    Il faut comprendre comment la mécanique fonctionne avant de pouvoir la réutiliser:
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    # On importe Tkinter
    from tkinter import *
    import random
     
    # On crée une fenêtre, racine de notre interface
    fenetre = Tk()
     
    #On importe l'image représentant le fond du jeu
    fond = PhotoImage(file="background-day.png")
    ## oiseau = PhotoImage(file="yellowbird-midflap.png")
    oiseau2 = PhotoImage(file="bluebird-midflap.png")
    ## oiseau3 = PhotoImage(file="redbird-midflap.png")
     
    # interface racine
    canvas = Canvas(fenetre, width=288, height=512)
    canvas.create_image(144,256, anchor=CENTER,image=fond)
     
    ## oiseau=[oiseau,oiseau2,oiseau3]
    ## O=random.choice(oiseau)
    O = oiseau2
    image_oiseau=canvas.create_image(67,244, anchor=S,image=O) 
     
     
     
    def deplacement():
        #Met en place les coordonnées de l'image
        img_coords=canvas.coords(image_oiseau)
        #Met en place la largeur de l'image
        img_width=O.width()
     
        #A revoir dans la vidéo
        if img_coords[0]+img_width >= 96:
            #0 représente le déplacmeent de X en abscisse et5 est Y en ordonnée
            canvas.move(image_oiseau,0,5)
            #Il se déplace toutes les 20 millisecondes
            canvas.after (40,deplacement)
     
    def sauter(event):
        print('sauter')
        canvas.move(image_oiseau, 0, -100)
     
    # On affiche le label dans la fenêtre
     
     
    deplacement()
    canvas.pack()
    canvas.focus_set()
    canvas.bind("<space>",sauter) 
     
     
    # On démarre la boucle Tkinter qui s'interompt quand on ferme la fenêtre
    fenetre.mainloop()
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Besoin d'aide pour faire une procédure stockée
    Par PoichOU dans le forum SQL
    Réponses: 17
    Dernier message: 30/04/2007, 17h55
  2. Réponses: 42
    Dernier message: 11/03/2007, 14h09
  3. Besoin d'aide pour faire fonctionner un Script d'upload d'images
    Par PaoOo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 15/06/2006, 21h24
  4. [VBA-E]besoin d'aide pour faire une boucle
    Par mikazounette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/04/2006, 14h04
  5. Besoin d'aide pour faire un script
    Par shinux2004 dans le forum Langage
    Réponses: 4
    Dernier message: 16/07/2005, 16h44

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