CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] un jeu en tkinter

Nadwaso
Nadwaso
Niveau 6
31 juillet 2015 à 18:47:10

Voilà j'essaye de coder un jeu avec tk en Python.

J'arrive à tout comprendre mais j'ai du mal à saisir 2 lignes.
Si quelqu'un pourrait me les expliquer:
from tkinter import * import random import time class Balle: def __init__(self,canvas,raquette,couleur): self.canvas = canvas self.raquette = raquette self.id = canvas.create_oval(10,10,25,25,fill = couleur) self.canvas.move(self.id,245,100) departs = [-3,-2,-1,1,2,3] random.shuffle(departs) self.x = departs[0] self.y = -3 self.hauteur_canvas = 400 self.largeur_canvas = 500 def heurter_raquette(self, pos): pos_raquette = self.canvas.coords(self.raquette.id) if pos[2] >= pos_raquette[0] and pos[0] <= pos_raquette[2]: if pos[3] >= pos_raquette[1] and pos[3]<= pos_raquette[3]: return True return False def dessiner(self): self.canvas.move(self.id,self.x,self.y) pos = self.canvas.coords(self.id) if pos[1]<=0: self.y =3 if pos[3]>= self.hauteur_canvas: self.y = -3 if self.heurter_raquette(pos) == True : self.y = -3 if pos[0]<=0: self.x =3 if pos[2]>= self.largeur_canvas: self.x = -3 class Raquette: def __init__(self,canvas,couleur): self.canvas = canvas self.id = canvas.create_rectangle(0,0,100,10,fill = couleur) self.canvas.move(self.id,200,300) self.x = 0 self.largeur_canvas = 500 self.canvas.bind_all("<KeyPress-Left>",self.vers_gauche) self.canvas.bind_all("<KeyPress-Right>",self.vers_droite) def vers_gauche(self, event): self.x = -2 def vers_droite(self,event): self.x = 2 def dessiner(self): self.canvas.move(self.id,self.x,0) pos = self.canvas.coords(self.id) if pos[0]<=0: self.x = 0 elif pos[2] >= self.largeur_canvas: self.x = 0 tk = Tk() tk.title("WALL KOMBAT !") tk.resizable(0,0) tk.wm_attributes("-topmost",1) canvas = Canvas(tk, width = 500, height = 400, bd = 0, highlightthickness = 0) canvas.pack() tk.update() raquette = Raquette(canvas,"blue") balle = Balle(canvas,raquette,'red') while 1: balle.dessiner() raquette.dessiner() tk.update_idletasks() tk.update() time.sleep(0.01)
if pos[2] >= pos_raquette[0] and pos[0] <= pos_raquette[2]: if pos[3] >= pos_raquette[1] and pos[3]<= pos_raquette[3]:
Merci :)

Message édité le 31 juillet 2015 à 18:49:38 par Nadwaso
Athuro83
Athuro83
Niveau 10
31 juillet 2015 à 20:30:02

Salut

Je ne connais pas la bibliothèque Tkinter mais je suppose que ces lignes sont destinés a tester si la balle (ou du moins un point de la balle) est contenu dans la surface de la tablette.
Dans ce cas il y a collision et la bien nommée méthode heurter_raquette() retournera alors True.

Après ce n'est qu'une supposition et je laisse des utilisateurs plus avertis confirmer (ou pas) cette hypothèse.
(Je suis particulièrement dérangé par le système de position à 4 valeurs en fait, serai-ce une valeur par côté de la surface ?)

Nadwaso
Nadwaso
Niveau 6
31 juillet 2015 à 20:32:09

Oui en relisant c'est bien ça.
J'ai compris le code finalement, mais x et y ne devrait pas representer le coin superieur gauche et le coin inferieur droit non ? Si c'est ça j'ai bien compris.

Message édité le 31 juillet 2015 à 20:36:40 par Nadwaso
Athuro83
Athuro83
Niveau 10
31 juillet 2015 à 20:42:18

x et y sont des variables qui représentent un couple de coordonnées permettant de positionner un point dans le repère de la fenêtre.
Après il faut savoir comment ce repère est définit par rapport à la fenêtre de jeu en consultant par exemple la documentation de Tkinter (même si je parierais fortement sur une origine du repère dans le coin supérieur gauche de la fenêtre, avec un axe des abscisses qui suit le haut de la fenêtre et un axe des ordonnées qui suit le bort gauche de la fenêtre)

bienvumonsieur2
bienvumonsieur2
Niveau 1
08 juin 2020 à 22:29:33

bonjour a tous, j'ai énormément besoin de votre aide j'ai un programme python a faire pour vendredi et si je ne réussis pas mon père va me foutre une grosse raclée et le pire c'est que je suis archi nul sur tkinter je n'y comprends rien. mon but est de créer un jeu avec tkinter sur python un jeu de penalty de football en gros des tirs au but, je veux rien de complexe ne vous prenez pas la tête, juste un joueur qui tire dans une balle et doit marquer dans des cages protéger par un gardien de but svp c'est urgent un grand grand merci d'avance a celui qui m'aidera

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment