importtkinterastkclassMoveCanvas(tk.Canvas):def__init__(self,*args,**kwargs):super().__init__(*args,**kwargs)self.dx=0self.dy=0self.box=self.create_rectangle(0,0,10,10,fill="black")self.dt=25self.tick()deftick(self):self.move(self.box,self.dx,self.dy)self.after(self.dt,self.tick)defchange_heading(self,dx,dy):self.dx=dxself.dy=dyif__name__=="__main__":root=tk.Tk()root.geometry("300x300")cvs=MoveCanvas(root)cvs.pack(fill="both",expand=True)ds=3root.bind("<KeyPress-Left>",lambda_:cvs.change_heading(-ds,0))root.bind("<KeyPress-Right>",lambda_:cvs.change_heading(ds,0))root.bind("<KeyPress-Up>",lambda_:cvs.change_heading(0,-ds))root.bind("<KeyPress-Down>",lambda_:cvs.change_heading(0,ds))root.mainloop()