Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检测对象是否与特定标记重叠?_Python_Python 3.x_Tkinter_Tkinter Canvas - Fatal编程技术网

Python 如何检测对象是否与特定标记重叠?

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”)返回我希望

在Python3.6.0中使用Tkinter,是否有一种“好”方法来检测特定对象(在本例中是我的播放器精灵)是否与具有特定标记的任何其他对象重叠

我想做一些类似的事情:

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多个标记的对象,这可能会更慢