Déplacement d'un personnage

Déplacement d'une balle

Voici le programme donné en cours

from tkinter import *
def animation():
    global x, y, vx, vy, balle
    x = x + vx 
    y = y + vy
    Fond.coords(balle, x-10,y-10,x+10,y+10)
    fenetre.after(100,animation)
fenetre=Tk()
fenetre.title("Mouvement d'une balle")
Fond=Canvas(fenetre,width=500,height=500,bg="white")
Fond.grid()
x, y = 50, 50
vx, vy = 10, 0
balle = Fond.create_oval(x-10,y-10,x+10,y+10, fill = 'blue')
animation()
fenetre.mainloop()
  1. Quel est le rôle de ce programme ?
  2. Modifier ce programme pour que la balle se déplace vers le haut à gauche.
  3. Dans le programme ci -dessus, remplacer la balle par une image.

Résolution de l'exercice "Déplacement d'une balle : Question 2".


from tkinter import *
def anim():
    global x, y, vx, vy, balle
    x = x + vx
    y = y + vy
    Fond.coords(balle, x-10,y-10,x+10,y+10)
    fenetre.after(100,anim)
fenetre=Tk()
fenetre.title("Mouvemnt d'une balle")
Fond=Canvas(fenetre,width=500,height=500,bg="white")
Fond.grid()
x, y = 250, 250
vx, vy = -5, -5
balle = Fond.create_oval(x-10,y-10,x+10,y-10, fill = 'blue')
anim()
fenetre.mainloop()

Résolution de l'exercice "Déplacement d'une balle : Question 3".


from tkinter import *

def animation():
    global VX, VY, X, Y, img
    X, Y = X + VX, Y + VY
    img = PhotoImage(file="image.gif")
    Fond.itemconfig(requin4, image = img)
    Fond.coords(requin4,X,Y)
    fenetre.after(10,animation)

fenetre=Tk()
fenetre.geometry("500x500")

Fond=Canvas(fenetre,width=500,height=500,bg="blue")
Fond.grid()

img = PhotoImage(file="image.gif")
requin4 = Fond.create_image(460,460,image=img,anchor='nw')

VX, VY = -1, -1
X, Y = 460, 460

animation()

fenetre.mainloop()

Rebond sur les bords de l'écran

Réaliser un programme où une balle rebondit d’une façon aléatoire sur les bords de l’écran.

Résolution de l'exercice "Rebond sur les bords de l'écran"


from tkinter import *

def animation():
    global VX, VY, BalleX, BalleY
    futurX, futurY = BalleX + VX, BalleY + VY
    if futurX > 290 or futurX < 10 :
        VX = - VX
        futurX = BalleX + VX
    if futurY > 190 or futurY < 10 :
        VY = - VY
        futurY = BalleY + VY
    BalleX, BalleY = futurX, futurY

    Fond.coords(Balle, BalleX - 10, BalleY - 10, BalleX + 10, BalleY + 10)

    fenetre.after(40,animation)

fenetre=Tk()
fenetre.geometry("300x200")

Fond=Canvas(fenetre,width=300,height=200,bg="white")
Fond.grid()

VX, VY = 2, 2
BalleX, BalleY = 50, 100

Balle = Fond.create_oval(40, 90, 60, 110, fill = 'red')

animation()

fenetre.mainloop()

Le marcheur

A l’aides des images ci-dessous que vous pouvez télécharger, réaliser un programme qui déplace le personnage de la gauche vers la droite. Quand celui-ci sort d’un côté de l’écran, il réapparaîtra de l’autre.

exercice3_Depl Pour télécharger les images

Résolution de l'exercice "Le marcheur".


from tkinter import *

def anim():
    global x, frame, img
    x = x + 40
    if x > 1000 : x = -500
    frame = frame + 1
    if frame == 9 : frame = 1
    img = PhotoImage(file="Images/matt"+str(frame)+".gif")
    Fond.itemconfig(Matt, image = img)
    Fond.coords(Matt,x,0)
    fenetre.after(10,anim)

fenetre=Tk()
fenetre.title("Le marcheur")

Fond=Canvas(fenetre,width=1000,height=300,bg="white")
Fond.grid()

img = PhotoImage(file="Images/matt1.gif")
Matt = Fond.create_image(-250,0,image=img,anchor='nw')

x, frame = -250, 1
anim()
fenetre.mainloop()