私は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:最初のコメントの後、私はスプライトにさらに2つの認識器を追加しました。デリゲートメソッドshouldRecognizeSimultaneouslyWithGestureRecognizerを追加し、それをYESに設定しました。
これを実行して確認した後、ピンチとパンのジェスチャは地獄のように速いです。一方、回転は遅くなります。これらの2つのジェスチャー認識器を追加することによって、回転速度の低下はありませんでした。他の2つは流体に反応し、速く、UIRotationGestureRecognizerは遅いです。
ビューに他のジェスチャ認識機能を設定しましたか? – sergio
番号。あなたは何を意味するのでしょうか?スプライト?これは私が持っている質問です。 gestureRecognizerが[[CCDirector sharedDirector] openGLView]を使用して追加されると、このopenGLViewはすべてのグラフィックスを保持するマスターopenGLViewとして私に鳴ります。これをスプライトだけにしてはいけませんか?もしそうなら、どうしたらいいですか? – SpaceDog
私が言ったビューは正しく 'openGLView'です。あなたが持っている唯一のビューであるので、ジェスチャ認識ツールをそのビューに(あなたが言うように、マスタービューと)合わせてください。私もやっているし、遅れも加えない。あなたがもっと幸せを使っていたら。私は考えました – sergio