2014-09-25 1 views
0

Cocos2d 버전 3.0에서 Xcode를 사용하고 있습니다.TouchMoved로 스프라이트 끌기

화면에서 스프라이트를 드래그하려고합니다. 다음 코드를 사용하여 성공적으로 수행했습니다.

(void) touchMoved:(UITouch *)touch withEvent:(UIEvent *)event 

{ 

CGPoint touchLocation = [touch locationInNode:self]; 

sprite1.position=touchLocation; 

sprite2.position=touchLocation; 

sprite3.position=touchLocation; 

sprite4.position=touchLocation; 

} 

그러나 때때로 스프라이트는 1 초 후에 움직이지 않습니다. 그들은 결코 내 운동으로 되돌아 가지 않기 때문에 지체가 아닙니다. 그들은 단지 그만! 내가 놓아서 다시 움직이기 시작하면 스프라이트가 다시 잘 움직이기 시작/때로는 '멈추는 것'을 다시하십시오.

메모리 문제입니까?

좋아요, 메모리가되어야합니다. 이 코드를 거의 스프라이트가없는 간단한 게임에 복사하면 완벽하게 작동합니다.

+0

터치가 [self boundingBox]를 벗어나면 touchmoved 이벤트 수신이 중단됩니다. – YvesLeBorg

+0

답장을 보내 주셔서 감사합니다. 내 생각에 '자아'는 전체 화면을 의미합니다. 물론 내 손가락이 화면을 떠나지 않습니다. 어쩌면 나는 '자아'를 다른 것으로 바꿔야 할까? – SunnyDay1203

+0

나는 다트 놀이를하지 않는다. ... ... 만일 당신이 자기의 경계 상자가 전체 화면이라는 것을 "안다"면, 당신이 옳고 나는 더 이상의 설명이 없다. 행운 – YvesLeBorg

답변

0

알겠습니다.

스프라이트를 이동하는 동안 UISwipeGestureRecognizers를 unEnable해야했습니다.

게임에서 내 touchesMoved 동작을 스 와이프로 등록하고 touchesMoved 명령을 취소했습니다.