Jeu PONG Python [Tkinter] ! Recherche de l'Aide

Fermé
Xetonixx2 Messages postés 3 Date d'inscription dimanche 1 mars 2015 Statut Membre Dernière intervention 3 mars 2015 - 1 mars 2015 à 13:28
Xetonixx2 Messages postés 3 Date d'inscription dimanche 1 mars 2015 Statut Membre Dernière intervention 3 mars 2015 - 3 mars 2015 à 16:53
Bonjour,

Depuis quelques temps j'essai de créer un mini jeu "pong" sous Python via Tkinter
Or, j'ai un problème depuis peu , je suis arrivé a un stade ou je dois faire rebondir la "balle" sur les "raquettes"... Sauf que ça ne fonctionne pas bien ... Voici un gif du résultat : https://gyazo.com/5e98a1d426ac0c5174de763034c4394d

Le problème viens de ma définition "def move()" , mais je n'arrive pas a cerner le problème.

Voici le lien vers mon programme python:
https://www.dropbox.com/s/gak776s9l5u9agy/Pong-TEST.py?dl=0

Pourriez vous me dire qu'est-ce qui cloche s'il vous plait? :)
Merci d'avance :)

3 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
Modifié par gravgun le 1/03/2015 à 15:02
'lut, déjà, tu as inversé les coordonnées des raquettes gauche et droite; comme ça c'est mieux:
PosXG=30
PosYG=140
PosXD=450
PosYD=140
Et deuxièmement, il y a deux fois le code de gestion de collision dans ta fonction move, en plus d'avoir des conditions qui ne sont pas logiques avec les positions; vite fait réécrit ça donne quelque chose plus comme ça:
def move():
    global x,y,dx,dy,flag,PosXD,PosYD,PosXG,PosYG,balle
    xp, yp = x+dx, y+dy
    print (xp,yp)
    if xp >= PosXD + 5 and yp < PosYD+50 and yp > PosYD-10:
        dx = -dx
    if xp <= PosXG - 5 and yp < PosYG+50 and yp > PosYG-10:
        dx = -dx
    if yp> Hauteur -15 or yp < 15:
        dy = -dy
    x, y = x+dx, y+dy
    Canevas.coords(balle,x,y,x+16,y+16)
 
    if flag > 0:
        Mafenetre.after(50,move)
Bien sur c'est loin d'être parfait (la balle passe au travers du bord des raquettes), mais l'idée est là.
from human import idiocy
del idiocy
1
Xetonixx2 Messages postés 3 Date d'inscription dimanche 1 mars 2015 Statut Membre Dernière intervention 3 mars 2015
1 mars 2015 à 16:07
Merci bien !

Cela me débloque bien ! :)
0
Xetonixx2 Messages postés 3 Date d'inscription dimanche 1 mars 2015 Statut Membre Dernière intervention 3 mars 2015
3 mars 2015 à 16:53
j'ai pus avancer a ce résultat: https://gyazo.com/8cf065a8c3555efd20b0840e4d3d41d4

https://www.dropbox.com/s/dotmw4ienuokybo/Pong-TEST2.py?dl=0

Comment faire pour que la balle rebondisse sur le côté gauche de la raquette ?

(à noter que la raquette gauche fonctionne correctement)

Merci d'avance !
0