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

2024-09-30 08:20:08 发布

您现在位置:Python中文网/ 问答频道 /正文

在python3.6.0中使用Tkinter,有没有一种“好”的方法来检测特定对象(在本例中是我的playerspirite)是否与其他对象重叠了一个特定的标记?在

我想做些类似的事情:

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检测它是否重叠。在

谢谢!在


Tags: 对象方法标记idiftkintertagfind
1条回答
网友
1楼 · 发布于 2024-09-30 08:20:08

考虑到这两个列表,您只需获取其中一个元素的每个元素,然后检查它是否在另一个元素中:

 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多个标记对象,这可能会比较慢。在

相关问题 更多 >

    热门问题