Faire bouger une image (TKINTER)

Fermé
KRO - Modifié le 5 avril 2018 à 20:08
 critou - 6 avril 2018 à 00:15
Bonjour, voilà je souhaiterai dans un jeu en python(tkinter) faire bouger une image seulement je n'y arrive pas et je ne comprend pas d'où vient mon problème si quelqu'un voudrait bien m'aider à me débloquer.... Merci beaucoup.

Voici mon code :

import tkinter as tk
import os
from PIL import Image, ImageTk

#Création de la fenêtre d'introduction
fenetreintro = tk.Tk()
label = tk.Label(fenetreintro, text="Wanted")
label.pack()
canvas=tk.Canvas(fenetreintro, width=800, height=500, background='white')
canvas.pack()

#Chemin pour les images
script_dir = os.path.dirname(__file__)
rel_path = "/images/"
abs_file_path = script_dir + rel_path

photo = Image.open(abs_file_path+"wanted.jpeg")
photowanted = ImageTk.PhotoImage(photo)
wanted=canvas.create_image(400, 200, image=photowanted)

#Fenêtre jeu
def faireApparaitreLeToplevel():
canvasjeu.pack()

#Fenêtre instructions
def ApparitionToplevel():
top2=tk.Toplevel()
lab=tk.Label(top2, text="INSTRUCTIONS AU JEU")
lab.pack()

bouton1=tk.Button(fenetreintro, text="PLAY", command=faireApparaitreLeToplevel)
bouton1.pack()

bouton2=tk.Button(fenetreintro, text="Instructions", command=ApparitionToplevel)
bouton2.pack()

bouton3=tk.Button(fenetreintro, text="Quitter", command=fenetreintro.destroy)
bouton3.pack()

def deplacement():
global dx, dy
#On deplace la balle :
canvasjeu.move(wanted,dx,dy)
#On repete cette fonction
fenetrejeu.after(20,deplacement)

#Deplacement de la balle au départ:
dx=0
dy=1

fenetrejeu = tk.Toplevel()
label = tk.Label(fenetrejeu, text="Wanted-Jeu")
label.pack()
canvasjeu=tk.Canvas(fenetrejeu, width=500, height=400, bd=0,bg='white')

#Insertion images
photo = Image.open(abs_file_path+"wanted.jpg")
photowanted = ImageTk.PhotoImage(photo)
wanted=canvas.create_image(290, 200, image=photowanted)

deplacement()

fenetreintro.mainloop()

fenetrejeu.mainloop()
A voir également:

1 réponse

Bonsoir.

Il n'y a aucune incrémentation ou décrémentation de dx et dy dans ta fonction deplacement, cela ne bougera donc jamais.
Et il y a aussi une erreur, wanted appartient à canvas et non à canvasjeu.

Pourquoi ce fenetrejeu.mainloop() ?
0