나는 CCSprite 클래스를 서브 클래 싱하고 UIRotationGestureRecognizer를 추가했다. 그래서, 내 init 메소드에 나는이iPhone Cocos2D - 스프라이트를 회전하는 손가락
UIRotationGestureRecognizer *rot = [[[UIRotationGestureRecognizer alloc]
initWithTarget:self action:@selector(handleRotation:)] autorelease];
[rot setDelegate:self];
[[[CCDirector sharedDirector] openGLView] addGestureRecognizer:rot];
을 한 후 나는 방법
- (void)handleRotation:(UIRotationGestureRecognizer *)recognizer {
float rotation = [recognizer rotation];
self.rotation += rotation;
}
가 완벽하게 작동하지만 실제 동작과 회전 자체 사이에 큰 지연을 가지고 있습니다. 제스처와 스프라이트 응답 사이에 거의 0.5 초가 걸립니다.
어떻게 해결할 수 있습니까? 감사.
참고 : UIPinchGestureRecognizer 및 UIPanGestureRecognizer : 첫 번째 코멘트 후, 나는 스프라이트에 두 개 더 인식기를 추가했습니다. 또한 대리자 메서드 shouldRecognizeSimultaneouslyWithGestureRecognizer를 추가하고이를 YES로 설정했습니다.
이 작업을 수행하고 확인한 후에 집게와 제스처는 지옥처럼 빠릅니다. 반면에 회전은 느리게 진행됩니다. 이 두 다른 제스처 인식기를 추가하여 회전 속도가 감소하지 않았습니다. 다른 두 사람은 유체 반응이 빠르며 UIRotationGestureRecognizer는 느립니다.
보기에 다른 제스처 인식기를 설정 했습니까? – sergio
번호. 너는 무엇을 의미 하는가? 스프라이트? 이것은 내가 가진 질문이다. gestureRecognizer가 [[[CCDirector sharedDirector] openGLView]를 사용하여 추가되면,이 openGLView는 저에게 모든 그래픽을 포함하는 마스터 openGLView로 들립니다. 이건 그냥 스프라이트로 설정하면 안됩니까? 그렇다면 어떻게해야합니까? – SpaceDog
내가보기에 의미가있는 것은 'openGLView'입니다. 자신이 볼 수있는 유일한보기이기 때문에 제스처 인식기를 해당 뷰에 연결하는 것이 옳습니다 (마스터 뷰와 마찬가지로). 나는 또한하고 지연을 추가하지 않습니다. 네가 더 많은 임신을했다면. 인식기는 다음 몇 가지 interacion 될 수 있다고 생각, 나는 – sergio