Python 如何检测对象是否与特定标记重叠?
在Python3.6.0中使用Tkinter,是否有一种“好”方法来检测特定对象(在本例中是我的播放器精灵)是否与具有特定标记的任何其他对象重叠 我想做一些类似的事情:Python 如何检测对象是否与特定标记重叠?,python,python-3.x,tkinter,tkinter-canvas,Python,Python 3.x,Tkinter,Tkinter Canvas,在Python3.6.0中使用Tkinter,是否有一种“好”方法来检测特定对象(在本例中是我的播放器精灵)是否与具有特定标记的任何其他对象重叠 我想做一些类似的事情: if canvas.find_overlapping( *canvas.coords(player) ) == (player, "item_tag"): return True 其中,item_tag是应用于画布上100多个对象的标记 我可以使用canvas.find_withtag(“item_tag”)返回我希望
if canvas.find_overlapping( *canvas.coords(player) ) == (player, "item_tag"):
return True
其中,item_tag
是应用于画布上100多个对象的标记
我可以使用canvas.find_withtag(“item_tag”)
返回我希望玩家与之交互的所有对象的对象ID,但我无法在find_overlapping
中实现这一点,例如,获取每个对象ID,让find_overlapping
检测它是否重叠
谢谢 考虑到这两个都是列表,您所要做的就是获取其中一个元素的每个元素并检查它是否在另一个元素中:
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
您可以反向执行此操作,并查看标记的\u对象
的每个元素是否位于重叠的\u对象
,但考虑到您所说的有100多个标记的对象,这可能会更慢