2

特定の位置でカードのデッキを配ろうとしていますが、ある場所で立ち往生しています。私は最大より1つ少ないだけを扱っています。nsarray のインデックス内のすべてのスポットを処理しようとしています。

- (CGPoint)animateDealingToPlayer:(Player *)player withDelay:(NSTimeInterval)delay
{
    self.frame = CGRectMake(-100.0f, -100.0f, CardWidth, CardHeight);
    self.transform = CGAffineTransformMakeRotation(M_PI);

    NSArray *position = [NSArray arrayWithObjects:




                         [NSValue valueWithCGPoint:CGPointMake(0, 0)],
                         [NSValue valueWithCGPoint:CGPointMake(0, 0)],
                         [NSValue valueWithCGPoint:CGPointMake(0, 0)],
                         [NSValue valueWithCGPoint:CGPointMake(0, 0)],
                         [NSValue valueWithCGPoint:CGPointMake(10,   50)],


                         nil];


    for(int i=0; i<5; i++) {
        NSValue *value = [position objectAtIndex:i];
        CGPoint point = [value CGPointValue];
        NSLog(@"%@",NSStringFromCGPoint(point));

        self.center = point;


    }

}

私は 10,50 でカードを配り、0,0 などの以前の位置でカードを配っていません。これはおそらく簡単に解決できますが、これを修正する方法を思い出せないようです。私を助けてください。また、私はまだ目的の c に少し慣れていないので、これを解決する場合は、これを馬鹿にする必要があるかもしれません (笑)。

4

1 に答える 1

1

問題は、アニメーションを実行せずにカードの位置を 5 回設定したり、位置を変更する間にカード オブジェクトを再描画する機会を与えたりすることです。実行ループが起動する機会が得られるまで、iOS は実際にカードを配置しません。考えられる解決策はいくつかありますが、ループ内にアニメーション ブロックを追加して、動きがディスプレイのキューに入れられるようにすることを検討する必要があります。

于 2012-09-07T01:08:03.830 に答える