
Envoyé par
valentine96
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 :
1 2
| Canevas.focus_set()
Canevas.bind('<Key>',Clavier) |
Ne vous embêtez pas la vie comme ça : en général, un simple
Mafenetre.bind_all("<Key>", Clavier)
suffit amplement.
Pareil :
1 2
| # Création d'un widget Button (bouton Quitter)
Button(Mafenetre, text ='Quitter', command = Mafenetre.destroy).pack(side=LEFT,padx=5,pady=5) |
Vous pouvez utiliser Mafenetre.quit au lieu de Mafenetre.destroy.
Simplifiez aussi vos formules, par exemple :
1 2 3
| PosY -= 2
if PosY<12:
PosY = 12 |
peut s'écrire tout simplement :
PosY = max(12, PosY - 2) # borne inférieure
et
1 2 3
| PosX += 2
if PosX>977:
PosX=977 |
se résume à :
PosX = min(977, PosX + 2) # borne supérieure
Bon boulot.
Amusez-vous bien !
Partager