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 tkinter vitesse d'une balle [Python 3.X]


Sujet :

Tkinter Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Par défaut Problème tkinter vitesse d'une balle
    Bonjour, j'ai pour la rentrée un programme à faire en python dont voici la consigne:

    Ecrire un programme de jeu fonctionnant de la manière suivante*:
    une balle se déplace au hasard sur un canevas, à vitesse faible. Le joueur doit essayer de
    cliquer sur cette balle à l'aide de la souris. S'il y arrive, il gagne un point, mais la balle se
    déplace plus rapidement et ainsi de suite. Arrêter le jeu au bout d'un certain nombre de clics
    et afficher le score atteint.

    Or j'ai un problème, lorsque je clique sur ma balle son sens de déplacement change bizarrement et la vitesse ne semble pas être croissante avec l'augmentation du score. Merci d'avance pour l'aide qui me sera fournie.

    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
    from tkinter import *
    from random import*
    from math import sin, cos
     
    #Définition des gestionnaires d'évenements: 
    def move():
        global x, y, flag, dx, dy
     
        if x > 485 or x < 15:
            dx = -dx
        x += dx
     
        if y > 485 or y < 15:
            dy = -dy
        y += dy
     
        can.coords(ball, x-15, y-15, x+15, y+15)
     
        if flag > 0:
            fen.after(50, move)
     
    def clicBall(event):
        global x, y, score, flag, ms, tap, dx, dy
        if event.x:
            tap+=1
        if flag == 1:
     
            if event.x >= x-15 and event.x <= x+15 and event.y >= y-15 and event.y <= y+15:
                score += 1
                dx += 2
                dy += 2
                labScore.configure(text= "Nombre de Points: "+str(score))
                gameOver()
     
    def gameOver():
        global tap, flag
     
        if tap == 50:
            labScore.configure(text= "Bravo! Score Final: "+str(score))
            stop()
     
    def start():
        global flag, ms
     
        flag += 1
     
        if flag == 1:
            labScore.configure(text= "Nombre de Points: "+str(score))
            ms = 6
            move()
     
    def stop():
        global flag, score
     
        flag = 0
        score = 0
     
    #========== Programme principal =============
    # les variables suivantes seront utilisées de manière globale :
    x, y = 150, 280
    flag = 0
    dx, dy = 5, 5
    vx = cos(1)
    score = 0
    tap = 0 
     
    #Création du widget principal ("maitre"):
    fen = Tk()
    fen.title("Petit jeu avec Tkinter")
     
    #Création des widgets "esclaves":
    can = Canvas(fen, bg= "dark grey", width= 500, height= 500)
    can.grid(row= 2, column= 0)
    ball = can.create_oval(x-15, y-15, x+15, y+15, outline= "black", fill= "green")
    can.bind("<Button-1>", clicBall)
    labScore = Label(fen, text= "Nombre de Points: 0")
    labScore.grid(row= 3, column= 0)
    Button(fen, text= "Débuter la Partie", command= start).grid(row= 0, column= 0)
    Button(fen, text= "Arrêter la Partie", command= stop).grid(row= 1, column= 0)
    Button(fen, text= "Quitter", command= fen.quit).grid(row= 4, column= 0)
    fen.mainloop()
    fen.destroy()
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de position d'une balle
    Par ApprentiProgrammeur dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 31/10/2013, 15h25
  2. [Box2D] Problème avec la vitesse d'une balle
    Par Emilie L. dans le forum Physique
    Réponses: 1
    Dernier message: 29/09/2010, 15h29
  3. Problème déplacement d'une balle
    Par Coco4486 dans le forum Ogre
    Réponses: 21
    Dernier message: 09/05/2008, 11h47
  4. [debutant] faire bouger une balle et une raquette problème
    Par jerem721 dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 26/11/2007, 20h26
  5. Réponses: 24
    Dernier message: 24/07/2007, 17h48

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