Modifier un argument de fonction avec Scale

Fermé
lucasbarreau Messages postés 2 Date d'inscription lundi 13 avril 2020 Statut Membre Dernière intervention 14 avril 2020 - 13 avril 2020 à 17:30
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 13 avril 2020 à 18:18
Bonjour,

Je dois effectuer un jeu de basket en python. Pour ca, j'ai créer une fonction qui calcule la trajectoire d'un ballon en fonction d'une vitesse et d'un angle initial.

Je voudrai pouvoir laisser l'utilisateur configurer la vitesse et l'angle lui même à l'aide de Scale de tkinter mais tout ce que j'ai pu voir avec ce widget était des modifications de variables à l'aide de méthode s'exécutant en même temps que le widget.

Je n'arrive donc pas à recupérer la valeur de scale et de la transmettre en argument de ma fonction trajectoire...

Je ne sais pas si le widget scale peut être remplacé par quelque chose d'autre comme un bouton qui incrémenterai une certaine valeur à ma vitesse initiale (comme en lua par exemple).

Je ne maîtrise pas le module tkinter mais j'ai des bonnes bases en algo et en codage donc je n'aurais pas peur d'éventuels termes techniques.

Il est inutile que je vous fasse part de mon code étant donné qu'il ne fonctionne pas (pour le widget scale) cependant, je connais les arguments du widget inutile de vous embêter à me les rappeller.

Merci d'avance pour vos réponses.


Configuration: Windows / Firefox 75.0
A voir également:

1 réponse

Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 13 avril 2020 à 18:19
Bonjour lucasbarreau,

Ca doit marcher, en principe

angle=Scale(mon_canvas, from_ = 10, to = 90, command =oriente)

def oriente(angle):
    angle = float(angle)

#et dans la fonction de lancement du ballon, on a les déplacements suivant x et y:
def lance(angle):
    v = 10
    vx = v *cos(radians(angle))
    vy = -v *sin(radians(angle))
    #et la, on appelle une fonction récursive pour animer le ballon
     deplace_ballon()

def deplace_ballon():
    mon_canvas.move(ballon, int(vx),  int(vy))
    # etc .............................................
1