Jeux pong python /tkinter/pycharm

Fermé
tkinter4455 - Modifié le 14 juin 2021 à 15:24
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 25 juin 2021 à 13:14
Bonjour,

Je voudrais savoir comment créer une collision entre la balle et le paddle.

voici mon bout de code:
 def colision(self, ballePosx, ballePosy, balleHeight, balleWidth,
                       barrePosx, barrePosy, barreHeight, barreWidth):

     

        if ((barrePosx >= ballePosx) and (barrePosx <= ballePosx+balleWidth)) or ((barrePosx+barreWidth >= ballePosx) and (barrePosx+barreWidth <= ballePosx + balleWidth)):
            if ((barrePosy >= ballePosy) and (barrePosy <= ballePosy + balleHeight)) or (
                    (barrePosy + barreHeight >= ballePosy) and (barrePosy + barreHeight <= ballePosy + balleHeight)):
                self.xspeed *= -1
                self.yspeed *= -1



EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
A voir également:

5 réponses

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 14 juin 2021 à 16:39
Bonjour,

Moi j'en ai fait un avec Tkinter

Lorsque la position X de la balle (circulaire) est supérieure ou égale a la position X du bord gauche de la raquette (rectangulaire) droite moins le rayon de balle et que la position Y est entre les positions Y des bords haut et bas de la raquette, c'est que la balle touche la raquette de droite, et donc j'inverse le déplacement X de la balle, mais pas le Y bien sur ...
#Raquette droite
if(ball.vx > 0 and ball.x >= r_bat.x - ball.rad and ball.y > r_bat.y - ball.rad and ball.y < r_bat.y + r_bat.height + ball.rad):
    ball.vx = -ball.vx
    winsound.Beep(2000,10)

#Raquette gauche
elif(ball.vx < 0 and ball.x <= l_bat.x + l_bat.width + ball.rad and ball.y > l_bat.y - ball.rad and ball.y < l_bat.y + l_bat.height + ball.rad):
    ball.vx = -ball.vx
    winsound.Beep(2000,10)


Si la balle atteint les bords haut et bas du terrain, j'inverse le Y
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
15 juin 2021 à 16:36
Bonjour,

Alors, as-tu de la réussite ?
0
tkinter4455
17 juin 2021 à 08:49
oui c'est tout bon merci beaucoup
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 17 juin 2021 à 09:27
Bonjour,

Parfait, tu peux donc marquer cet appel comme "résolu"
Pour info, chez moi, ca donne ça:

0
ilyasc Messages postés 51 Date d'inscription samedi 22 août 2020 Statut Membre Dernière intervention 20 août 2023 1
25 juin 2021 à 13:05
GROSSE ERREUR D'UTLISER TKINTER
utilise pygame c plus simple
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 25 juin 2021 à 13:14
Bonjour,

GROSSE ERREUR D'UTLISER TKINTER

N'exagérons pas quand même !

Avec Tkinter, ca marche très bien ........... :-)
0