標準のiOSグラフィックスライブラリ(Core Graphics)を使用して、マルチタッチイメージローテーションを実装しました。Cocos2dマルチタッチスプライトの回転を実装する方法は?
それは次のようになります。
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
if ([touches count] == 2) {
NSArray *twoTouches = [touches allObjects];
UITouch *first = [twoTouches objectAtIndex:0];
UITouch *second = [twoTouches objectAtIndex:1];
CGFloat currentAngle = angleBetweenLinesInRadians([first previousLocationInView:self.view], [second previousLocationInView:self.view], [first locationInView:self.view], [second locationInView:self.view]);
pic1.transform = CGAffineTransformRotate(pic1.transform, currentAngle);
}
}
今、私は私のCocos2dプロジェクトでは、このソリューションを実装しようとしています。まず、私のinitメソッドにCCTouchDispacherを登録しました。私ccTouchMoved機能で
- (id) init
{
...
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
...
}
私は(NSSet *)に(UITouch *)に変更し、ちょうどすべてが正しかったことを確認するためのプロジェクトを構築しました。その結果、私は次のような警告を受けました: "互換性のないObjective-C型は 'struct NSSet *'を初期化し、 'struct UITouch *' 'を期待します。
すべてが正常に動作していたように私は移動し、(NSSet *)touchから1番目と2番目のタッチオブジェクトを抽出しようとしました。
- (void)ccTouchMoved:(NSSet *)touch withEvent:(UIEvent *)event {
if ([touch count] == 2) {
NSArray *twoTouches = [touch allObjects];
UITouch *first = [twoTouches objectAtIndex:0];
UITouch *second = [twoTouches objectAtIndex:1];
}
}
は今、私が働いている、それをコンパイルしようとしたが、私はiPhoneシミュレータを通じてccTouchMovedをトリガした後、私は、エラーメッセージの後だ:「 - [UITouchカウント]:認識されていないセレクタは、インスタンス0x542d6a0' に送られます」。
誰かがこのCocos2d ccTouchMovedメソッドを取得してマルチタッチイベントを認識し処理する方法を教えてください。
ありがとうございました。
こんにちはパックマン、あなたはangleBetweenLinesInRadiansを実施しなかったどのように私に言うことができることにより、複数のタッチをキャプチャするよう
?ありがとう。 –