Как определить, что объект на холсте скрыт

Решил сделать игру на Tkinter, у меня есть её почти готовый вид, не буду углубляться в саму игру.

Есть противник, он - это канвас фото. (PhotoImage, canvas.create_image) сначала он должен быть скрыт, как это реализовать правильно? Позже, мне надо будет проверить с помощью IF скрыт ли он, в этом сама проблема.

Я попробовал сделать так:

canvas.itemconfig(self, state='hidden')

Он справился с сокрытием врага, но как теперь проверить скрыт ли он? Есть функция, она постоянно должна проверять скрыт ли противник. Как реализовать?


Ответы (1 шт):

Автор решения: insolor

Если метод itemconfig вызвать без дополнительных параметров (передать только id нужного объекта на холсте), то он вернет значения всех параметров объекта в виде словаря (см. Canvas.itemconfig).

Соответственно, чтобы получить state, нужно из этого словаря получить данные по ключу "state":

canvas.itemconfig(item_id, state="hidden")
print(canvas.itemconfig(item_id)["state"])  # ('state', '', '', '', 'hidden')
print("hidden" in canvas.itemconfig(item_id)["state"])  # True
→ Ссылка