Bonjour,
j'ouvre un nouveau fil pour cerner mon dernier problème.

J'arrive au bout d'un jeu de labyrinthe mais je n'arrive pas à changer de niveau.

Suit le code d'un de mes essais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
from tkinter import *
 
def droite(event,win,can,perso):
    can.move(perso, 30, 0)
    can.pack()
 
def maj(event,win,can,perso):
    # Efface le canvas
    liste = can.find_all()
    for i in liste :
        can.delete(i)
    global personnage
    personnage = can.create_image(0,30, anchor = NW, image = TUX)
    can.pack()
    print(n)
 
def quitter(event,win):
    win.destroy()
 
def config_touches( canvas, fen, perso):
    fen.bind("<Right>", lambda event, f = fen, can = canvas, p = perso : droite(event,f,can,p))
    fen.bind("<space>", lambda event, f = fen, can = canvas, p = perso : maj(event,f,can,p))
    fen.bind("<Escape>", lambda event, f = fen : quitter(event,f))
 
# Création de la fenetre et du canvas
n = 1
fenetre = Tk()
toile = Canvas(fenetre, width = 90, height = 90)
MUR = PhotoImage(file="mur_h.gif")
toile.create_image(30,30, anchor = NW, image = MUR)
TUX = PhotoImage(file="tux.gif")
personnage = toile.create_image(0,30, anchor = NW, image = TUX)
toile.pack()
config_touches(toile,fenetre,personnage)
fenetre.mainloop()
C'est la fonction "maj" qui me pose problème. Quand elle est utilisée, la fonction "droite" ne fonctionne plus. J'ai essayé de déclarer "personnage" en global mais il ne se déplace pas avec la fonction "droite".
Comment faire pour que cette fonction "droite" voit le "personnage".

Merci d'avance.
Sylvain.