2017-03-26 6 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이 겹치는 부분을 탐지하도록하십시오.

감사합니다.

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 

당신은 역에서이 작업을 수행하고 각 요소의 있는지 볼 수 있었다 : 모두 목록을 고려

답변

0

, 당신이해야 할 일의 각 요소를 가지고 있는지 확인하여 다른 체크입니다 tagged_objectsoverlapping_objects에 있지만 100 개 이상의 태그가있는 개체가 있다고 가정하면 느려질 것입니다.