2017-03-26 89 views
2

在Python 3.6.0中使用Tkinter,有沒有一種'好'的方法來檢測一個特定的對象,在這種情況下,我的播放器精靈,是否與任何其他對象重疊的特定標籤?如何檢測對象是否與特定標籤重疊?

我希望做這樣的事情:

if canvas.find_overlapping(*canvas.coords(player)) == (player, "item_tag"): 
    return True 

其中item_tag是適用於100+對象上canvas標籤。

我可以用canvas.find_withtag("item_tag")返回希望玩家互動的所有對象的對象ID,但我無法在find_overlapping(例如取每個對象ID並讓find_overlapping檢測它是否重疊。

謝謝!

回答

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_objectsoverlapping_objects,但考慮到你說有100多個標籤對象,這可能會更慢。

相關問題