Bonjour,
J'essaie de faire un jeu à plateforme, je débute dans Tkinter, et j aimerais que mon pion ne puisse pas traverser le rectangle qui sert de plateforme, ca m arrangerais bien si quelqu un pouvait me donner quelque pistes !
Merci
Version imprimable
Bonjour,
J'essaie de faire un jeu à plateforme, je débute dans Tkinter, et j aimerais que mon pion ne puisse pas traverser le rectangle qui sert de plateforme, ca m arrangerais bien si quelqu un pouvait me donner quelque pistes !
Merci
Bonjour,
Pour la détection d'objets et de formes dans un canevas Tkinter, vous avez plusieurs méthodes :
http://infohost.nmt.edu/tcc/help/pub...s-methods.html
La doc officielle Tkinter (à toujours avoir sous la main) :
http://infohost.nmt.edu/tcc/help/pub...web/index.html
Une fois la méthode adéquate sélectionnée, il ne vous restera plus qu'à :
1. récupérer l'ID de la forme rectangle située sous votre "player"
2. récupérer la largeur du rectangle (canvas.itemcget(????))
3. borner les déplacements du "player" en fct de cette largeur
PS: petits trucs sous Tkinter :
Ne vous embêtez pas la vie comme ça : en général, un simpleCode:
1
2 Canevas.focus_set() Canevas.bind('<Key>',Clavier)
suffit amplement.Code:Mafenetre.bind_all("<Key>", Clavier)
Pareil :
Vous pouvez utiliser Mafenetre.quit au lieu de Mafenetre.destroy.Code:
1
2 # Création d'un widget Button (bouton Quitter) Button(Mafenetre, text ='Quitter', command = Mafenetre.destroy).pack(side=LEFT,padx=5,pady=5)
Simplifiez aussi vos formules, par exemple :
peut s'écrire tout simplement :Code:
1
2
3 PosY -= 2 if PosY<12: PosY = 12
etCode:PosY = max(12, PosY - 2) # borne inférieure
se résume à :Code:
1
2
3 PosX += 2 if PosX>977: PosX=977
Bon boulot.Code:PosX = min(977, PosX + 2) # borne supérieure
Amusez-vous bien ! :)