0

私は現在、学習プロジェクトとして小さなゲームを設計しています。基本的には次のとおりです。画像はviewDidLoadで回転およびスケーリングされ、別の画像は元の画像の直接コピーです。

基本的に、他の画像とは少し異なる画像があります。目的は、縮小して回転し、5 ピクセル、5 度の回転、5 パーセントのスケールで他の画像の上に移動することです。

私の問題は、回転とスケールのメソッドを実行すると、画像が開始位置に戻るだけです。

私の2つの方法は以下のとおりです。

回転する

//rotation gesture recognizer response
- (void)respondToRotateGesture:(UIRotationGestureRecognizer *)gesture {
    if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateChanged) {
        image.transform = CGAffineTransformRotate(gesture.view.transform, gesture.rotation);
    }
    gesture.rotation = 0;
}

規模

//pinch gesture recognizer
- (void)respondToPinchGesture:(UIPinchGestureRecognizer *)gesture {
    if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateChanged) {
            image.transform = CGAffineTransformScale(image.transform, gesture.scale, gesture.scale);
    }
    gesture.scale = 1;
}

回転して拡大縮小しようとすると、画像の中心を中心に回転したり、画像の中心から拡大縮小したりしない理由を理解しようとしています。左上隅から回転し、すべてが奇妙にスケーリングします。画像をつまんでズームアウトすると、画面の左隅の開始位置に戻ります。

画像を移動するパン ジェスチャがあり、正常に動作していますが、これら 2 つは問題を引き起こし、スムーズではありません。

これらの作業をよりスムーズにする方法や提案を知っている人はいますか?

4

0 に答える 0