ゲームの開発に Cocos2d を使用しています。必要に応じてパンとズームができるようにする必要があるため、プロジェクトに CCLayerPanZoom 拡張機能を追加しました。最近、ズームされたレイヤーの問題に気づきました。問題は、実行する前にズームパン可能なレイヤーに触れてズームまたはパンすると、正しいx、y座標が得られることです。しかし、レイヤーをズームすると、タッチされた位置の座標が以前のものとは異なります。タッチ位置を取得する方法は次のとおりです。
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch=[touches anyObject];
CGPoint touchedLocation=[touch locationInView:touch.view];
touchedLocation=[[CCDirector sharedDirector] convertToGL:startPoint];
}
ズームの前後で 2 点が異なるかどうかをどのように判断するのかと質問されるかもしれません。ビュー内の所定のポイントにスプライトが配置されています。スプライトに触れると、スプライトと touchedLocation の両方の位置を記録します。ズームする前は、これらのポイントはほとんど同じで、x と y の違いは数単位だけです。しかし、ズームした後、それらは完全に異なるポイントになり、この違いはズームスケールに正比例すると思います。ズーミングの前後でタッチした位置を同じにする方法を聞きたいのではなく、この場合どうすればよいかを聞きたいのです。