2017-03-26 12 views
2

Python 3.6.0でTkinterを使用すると、特定のオブジェクト(この場合はプレーヤスプライト)が特定のタグを持つ他のオブジェクトと重なっているかどうかを検出する「良い」方法がありますか?オブジェクトが特定のタグと重なっているかどうかを検出するにはどうすればよいですか?

私のような何かをしたいと思う:

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

canvasに100+のオブジェクトに適用されるタグです。

私はcanvas.find_withtag("item_tag")を使用して、プレイヤーがやりたいすべてのオブジェクトのオブジェクトIDを返すことができますが、これはfind_overlappingで動作するようにはできません。各オブジェクトIDを取得し、重複している場合はfind_overlappingを検出させます。

ありがとうございます!

答えて

0

両方が、リストであるあなたがしなければならないすべては1の各要素を取得し、それが他にあるかどうかを確認され考慮:

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以上のタグ付きオブジェクトがあると言えば、おそらくそれは遅くなります。

関連する問題