2013-03-17 2 views
0

이것은 단순히 놓치기 만 한 간단한 솔루션이어야합니다. KKInput을 사용하여 간단한 끌어서 놓기를 구현하려면 어떻게해야합니까?KKInput을 사용하여 Kobold2d에서 드래그를 구현하는 방법은 무엇입니까?

나는 업데이트 방법에서 이와 같은 것을 시도하고있다.

두 가지 문제가 있습니다. 1. 정말로 빠르게 움직여서 드래그에서 벗어날 수 있습니다. 2. 아래 태그가있는 스프라이트 위로 드래그하면 해당 스프라이트가 붙습니다.

무엇이 누락 되었습니까?

+1

터치가 스프라이트에서 시작되었습니다. 세트 드래그 플래그, 스프라이트를 기억하십시오. 이벤트 이동 = 스프라이트 pos를 터치하여 pos로 업데이트하십시오. 터치 끝 : 지우기 끌기 플래그. – LearnCocos2D

+0

사과드립니다. 드래그 플래그를 설정하는 과정을 설명해 주시겠습니까? 아직도 여기에서 길을 잃었다. Steffen에게 답변 해 주셔서 감사합니다. – Hartix

+0

끌기 = 예; ;) – LearnCocos2D

답변

0

여기 LearnCocos2D의 도움을받은 후 내가 한 일이 있습니다.

먼저 isDragging이라는 BOOL을 만들고 init에 no로 설정합니다. 나는 또한 어떤 스프라이트가 닿아 있는지 추적 할 수있는 속성을 만들었습니다.

if ([input touchesAvailable] && isDragging == NO){ 
    if ([input isAnyTouchOnNode:[self getChildByTag:0] touchPhase:KKTouchPhaseAny]) { 
     draggedSprite = zero; // Grab this pointer for use next 
     isDragging = YES; 
    } 
} 

그런 다음 드래그를 설정하면 아무런 터치도 사용할 수 없습니다.

if (![input touchesAvailable]) { 
    isDragging = NO; 
} 

그러면 터치 위치로 드래그 된 현재 스프라이트를 업데이트하면됩니다.

if (isDragging){ 
    draggedSprite.position = [input locationOfAnyTouchInPhase:KKTouchPhaseAny]; 
}