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 :

Augmenter la vitesse d'un objet au fur et à mesure qu'il se déplace (Tkinter).


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Augmenter la vitesse d'un objet au fur et à mesure qu'il se déplace (Tkinter).
    Bonjour, je suis encore en train de programmer mon jeu Flappy Bird et j'entame maintenant la partie du "débogage"
    Pour cela, j'ai réparé quelques problèmes comme le texte du score qui n'apparaissait pas et j'ai même personnalisé l'icone ainsi que le nom de la fenêtre (petit souci du détail).
    Sauf qu'il me reste à corriger un détail assez malencontreux que bistouille m'a fait remarqué Jeudi, la vitesse de la chute de l'oiseau est trop lente.
    Ainsi, il y a des déplacements impossibles à réaliser pour le joueur, notamment lorsque l'oiseau passe d'une paire de tuyaux très haute à une paire de tuyaux très basse.
    Cependant, les sauts de l'oiseau sont parfaits et je ne veux pas les modifier évidemment ! (merci Wiztricks au passage )

    Il a alors été logique pour moi de faire augmenter la vitesse de chute de l'oiseau au fur et à mesure qu'il tombe mais rien à faire, j'ai usé de diverses méthodes afin de programmer cette vitesse croissante mais elles n'ont pas abouties. J'ai par exemple, essayé, de décomposer le déplacement de l'oiseau mais cela n'a rien changé.
    Je suis conscient que je peu expérimenté mais je pensais en être capable et je ne trouve pas de sujets similaires sur le net

    Afin que vous m'aidiez, j'ai réduit mon programme au strict minimal et on y retrouve seulement le déplacement des objets du jeu, je suis conscient que je vous ais beaucoup trop demander d'aide pendant ces vacances et j'en suis désolé mais promis, après ce réglage vous ne me reverrez plus jamais !

    Ci-joint le fichier .zip des images de mon jeu !
    Flappy Bird 2.rar

    Merci beaucoup d'avance pour 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
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    from tkinter import *
    import random
    from random import randint
     
    def sauter(event):
        canvas.move(image_oiseau, 0, -10*DY)
     
    def deplacement():
        global mouvement
        global tuyx,tuyx2,h,H,oisx,oisy,solx,sol2x,score,pause
     
        x0, y0, x1, y1 = canvas.bbox(image_oiseau)
     
        canvas.move(image_oiseau, 0, DY)
     
        canvas.coords(image_sol,solx,512)
        if solx >= -144:
            solx=solx-5
        else:
            solx=144
     
        canvas.coords(image_sol2,sol2x,512)
        if sol2x >= 144:
            sol2x=sol2x-5
        else:
            sol2x=432
     
        canvas.coords(image_tuyau_haut,tuyx,h)
        canvas.coords(image_tuyau_bas,tuyx,h-379.8)
        if tuyx>=-28:
            tuyx=tuyx-5
        else:
            tuyx=316
            h=randint(272,523)
     
        canvas.coords(image_tuyau_haut2,tuyx2,H)
        canvas.coords(image_tuyau_bas2,tuyx2,H-379.8)
        if tuyx2>=-28:
            tuyx2=tuyx2-5
        else:
            tuyx2=316
            H=randint(272,523)
        canvas.after(40,deplacement)
     
    LARGEUR = 286
    HAUTEUR = 510
    DY = 5
    tuyx=316
    tuyx2=488
    h=randint(272,523)
    H=randint(272,523)
    oisx=67
    oisy=244
    solx=144
    sol2x=432
     
     
     
    fenetre = Tk()
     
    canvas = Canvas(fenetre, width=LARGEUR, height=HAUTEUR)
     
    fond = PhotoImage(file="background-day.png")
    fond2 = PhotoImage(file="background-night.png")
    fond=[fond,fond2]
    F= random.choice(fond)
    canvas.create_image(144,256, anchor=CENTER,image=F)
     
    tuyau_haut = PhotoImage(file="tuyau_vers_le_haut.png")
    image_tuyau_haut = canvas.create_image(tuyx,h,anchor=CENTER,image=tuyau_haut)
    image_tuyau_haut2 = canvas.create_image(tuyx2,H,anchor=CENTER,image=tuyau_haut)
     
    tuyau_bas = PhotoImage(file="tuyau_vers_le_bas.png")
    image_tuyau_bas = canvas.create_image(tuyx,h,anchor=CENTER,image=tuyau_bas)
    image_tuyau_bas2 = canvas.create_image(tuyx2,H,anchor=CENTER,image=tuyau_bas)
     
    sol = PhotoImage(file="sol-day.png")
    image_sol = canvas.create_image(144,512, anchor=S,image=sol)
    image_sol2 = canvas.create_image(432,512, anchor=S,image=sol)
     
    oiseau = PhotoImage(file="yellowbird-midflap.png")
    oiseau2 = PhotoImage(file="bluebird-midflap.png")
    oiseau3 = PhotoImage(file="redbird-midflap.png")
    oiseau=[oiseau,oiseau2,oiseau3]
    O=random.choice(oiseau)
    image_oiseau=canvas.create_image(oisx,oisy, anchor=W,image=O)
     
    canvas.pack()
    canvas.focus_set()
     
    deplacement()
    canvas.bind("<space>",sauter)
     
    fenetre.mainloop()
      0  2

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

    Citation Envoyé par Glouber Voir le message
    Je suis conscient que je peu expérimenté mais je pensais en être capable et je ne trouve pas de sujets similaires sur le net
    Il faut ouvrir votre cour de physique et y trouver qu'une vitesse est définie par une distance divisée par une durée. Après vous regardez à quoi çà correspond dans votre code et vous devriez trouver que la vitesse de l'oiseau est DY / 40.
    Il s'ensuit qu'augmenter la vitesse, c'est diminuer le dénominateur ou augmenter le numérateur...
    Donc vous n'avez pas beaucoup de choix et je ne vois pas quelle difficultés il y a pour coder çà (en tout cas à par demander de l'aide vous ne montrez rien des difficultés rencontrées).

    - W
      1  1

  3. #3
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 894
    Points : 7 250
    Points
    7 250
    Par défaut
    Bonjour,

    Il est dommage que vous soyez nouveau sur le forum où vous comprendriez que par ses nombres de points, wiztricks a aidé une paire de membres sur le forum python.

    Certes, il ne donne pas de réponse toute cuite dans le bec, parce-qu'il part du principe que votre travail dans le développement est toujours de se documenter, rechercher les mots clés utiles à une recherche plus profonde, faire des tests, ... c'est votre travail ! Le nôtre est de vous guider pour que vous puissiez parvenir à faire ces recherches et ces tests. Malgré que ce langage permet d'évoluer rapidement, le débutant doit commencer par le commencement, prendre un tuto, prendre une semaine ou deux à fond pour faire des tests, des petits codes sortant de votre projet de base, lire les réponses aux questions posées sur le forum, etc.

    Si vous n'avez pas compris la réponse de wiztricks, elle est pourtant d'une grande simplicité. On ne peut coder, que ce qu'on est capable de résoudre sur papier (sinon c'est du copier/coller et on ne monte pas en compétences).
    Si théoriquement, vous avez des difficultés, ça se répercutera automatiquement sur la pratique. Mais ce n'est pas pour cela qu'on doit donner une réponse toute cuite, vous devez maîtrisez la théorie, et vous remettre à la pratique une fois cela réglé.

    Voilà je vous ai trouvé injuste, surtout qu'à un moment wiztricks semble vous avoir aidé au regard de votre poste d'origine.
      1  0

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

    Tous ceux qui vous répondent essaient de vous aider plus ou moins maladroitement.

    Si des réponses ne répondent pas à vos attentes, vous êtes néanmoins tenu de rester courtois.

    - W
      2  0

Discussions similaires

  1. Réponses: 8
    Dernier message: 08/06/2011, 08h51
  2. Estimation de la vitesse d'un objet
    Par Redak2010 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/04/2011, 19h14
  3. Estimation de la vitesse d'un objet
    Par Redak2010 dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 21/04/2011, 11h04
  4. Réponses: 10
    Dernier message: 09/02/2011, 11h31
  5. [debutant] Creation d'objet au fur et a mesure
    Par jamesleouf dans le forum Débuter
    Réponses: 8
    Dernier message: 14/03/2006, 00h06

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