for 루프가 실행될 때마다 함수 animate 처리를 호출해야합니다. 이 예 individually.For 인덱스 번호를 모두 호출하는 대신 모든 지점에서 카드를 다루고 그것을 다루는 대신 5 개체의 인덱스를 제공 할 때까지for 루프에서 메서드를 호출하는 방법
-(void)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(100, 100)],
[NSValue valueWithCGPoint:CGPointMake(0, 0)],
[NSValue valueWithCGPoint:CGPointMake(0, 0)],
[NSValue valueWithCGPoint:CGPointMake(200, 100)],
[NSValue valueWithCGPoint:CGPointMake(200, 100)],
nil];
for(int i=0; i<6; i++) {
NSValue *value = [position objectAtIndex:i];
CGPoint point = [value CGPointValue];
NSLog(@"%@",NSStringFromCGPoint(point));
_angle = [self angleForPlayer:player];
[UIView animateWithDuration:0.2f
delay:delay
options:UIViewAnimationOptionCurveEaseOut
animations:^
{
self.center = point;
self.transform = CGAffineTransformMakeRotation(_angle);
}
completion:nil];
는 지금은 self.center 반복 재 작성한다 단지 (200,100)에. 매 순간마다 애니 메이팅을 호출 할 수있는 방법이 필요하므로 모든 점을 처리 할 수 있지만 어떻게해야합니까? 내가 얻을 수있는 도움을 주시면 감사하겠습니다.
왜 플레이어 오브젝트 대신에 센터를 설정하고'self'로 변환하고 있습니까? –
전체 코드를 게시하지는 않겠지 만 이와 같이해야합니다. 여러 명의 선수가 있기 때문에. –
요소 5의 위치 만 변경해보십시오. 이제 요소 5의 위치가 바뀝니 까? 문제는 당신이 한 요소 ('카드'를 다루는)를 5 번 애니메이트하고 있다고 생각합니다. - 그런 애니메이션을 쌓아 올릴 수 있는지 모르겠습니다. 마지막 카드가 사용 된 유일한 카드이거나 모든 애니메이션이 동시에 카드에 적용됩니다. –