2

下のように1列に2つのオブジェクトを配置し、下のようにオブジェクトを下から撮影します。

                0 0 0 0 0 0 




                     0

下の方が常にその位置にあり、上の方に向かって撮影します。ユーザーがiPhoneの画面上で指を動かすと、下のように矢印を作成します。

                 0 0 0 0 0 0 

                   \
                    \
                     \
                      0

指を動かすと

                  0 0 0 0 0 0                             
                      |
                      |
                      | 
                      0

画面上の1本の指をさらに右に動かすと、矢印はそれぞれ次のように移動します。

                  0 0 0 0 0 0                             
                          /
                         /
                        /
                      0

配列の複数の画像があり、角度などに応じてそれらを使用する場合、このロジックをどのように実装できますか?ただし、正確さが必要です。

ありがとう

4

3 に答える 3

4

複数の画像は必要ありません...touchesMovedメソッドで矢印画像を回転させるだけです

そのコードを試してください。

UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:[touch view]];
location = [[CCDirector sharedDirector] convertToGL:location];


// Set up initial location of projectile
CGSize winSize = [[CCDirector sharedDirector] winSize];

// Rotate player to face shooting direction
CGPoint shootVector = ccpSub(location, sprite.position);
CGFloat shootAngle = ccpToAngle(shootVector);
CGFloat cocosAngle = CC_RADIANS_TO_DEGREES(-1 * shootAngle);

CGFloat curAngle = _player.rotation;
CGFloat rotateDiff = cocosAngle - curAngle;    
if (rotateDiff > 180)
    rotateDiff -= 360;
if (rotateDiff < -180)
    rotateDiff += 360;    

CGFloat rotateSpeed = 360; // degrees per second
CGFloat rotateDuration = fabs(rotateDiff / rotateSpeed);

[yoursprite runAction:[CCSequence actions:
                    [CCRotateTo actionWithDuration:rotateDuration angle:cocosAngle],
                    [CCCallFunc actionWithTarget:self selector:@selector(finishShoot)],
                    nil]];
于 2011-11-11T05:34:12.313 に答える
1

タッチムーブで画像を回転するには、次のリンクを確認してください

ここでは、希望の角度間の角度を制限する必要があります

画像を回転させる

于 2011-11-11T05:46:37.023 に答える
0

AnshulとNikhilが述べたように、矢印を回転させることで問題に適切に答えることができます。

さらに、設定によっては、矢印が左右にずれていることに気付かないように、アンカーを下部中央(0.5、0.5)に設定して矢印スプライトを作成する必要があることに注意してください。

一番、

于 2011-11-11T08:00:38.390 に答える