Я работаю над небольшой игрой, и мне интересно, есть ли способ для объекта холста tkinter обнаружить, если что-то касается его.В настоящее время я использую что-то вроде этого:
pos = canvas.coords(insert_object_here)
otherpos = canvas.coords(other_object)
if pos[3] <= objectpos[3] and pos[1] >= objectpos[1]:
if pos[2] <= objectpos[0]:
if pos[2] >= objectpos[0]-self.speed:
canvas.move(self.id, -x, y)
if pos[0] >= objectpos[2]:
if pos[0] <= objectpos[2]+self.speed:
canvas.move(self.id, -x, y)
if pos[2] <= objectpos[2] and pos[0] >= objectpos[0]:
if pos[3] <= objectpos[1]:
if pos[3] >= objectpos[1]-self.speed:
canvas.move(self.id, x, -y)
if pos[1] >= objectpos[3]:
if pos[1] <= objectpos[3]+self.speed:
canvas.move(self.id, x, -y)
canvas.move(self.id, x, y)
Это много кода, и мне нужно использовать его только один раз, что делает использование функции бессмысленным.
Итак, есть ли способ для объекта, чтобы обнаружить касание, или, по крайней мере, есть способ улучшить этот код?