在Python 3.6.0中使用Tkinter,是否有一种'好'的方法来检测特定对象(在本例中是我的播放器精灵)是否与任何其他具有特定标记的对象重叠?
我想做类似的事情:
if canvas.find_overlapping( *canvas.coords(player) ) == (player, "item_tag"):
return True
其中item_tag
是应用于canvas
上的100多个对象的标记。
我可以使用canvas.find_withtag("item_tag")
返回我希望玩家与之互动的所有对象的对象ID,但我无法在find_overlapping
内使用此功能,例如获取每个对象ID,让find_overlapping
检测它是否重叠。
谢谢!
答案 0 :(得分:0)
考虑到两者都是列表,你所要做的就是取一个元素并检查它是否在另一个元素中:
tagged_objects = canvas.find_withtag("item_tag")
overlapping_objects = canvas.find_overlapping(*canvas.coords(player))
for item in overlapping_objects:
if (item in tagged_objects):
return True
您可以反过来查看tagged_objects
的每个元素是否在overlapping_objects
中,但考虑到您说有100多个标记对象,可能会更慢。