핵심 애니메이션을 사용하면 여러 Calayers를위한 애니메이션을 그룹화하는 방법이 있습니까?

StackOverflow https://stackoverflow.com/questions/418419

  •  03-07-2019
  •  | 
  •  

문제

나는 "턴 기반"방식으로 애니메이션을하는 많은 Calayers가있는 상황이 있습니다. 나는 각각의 콜라 이어에 대한 위치를 애니메이션하지만 정확히 같은 기간을 가지고 있습니다. 모든 Calayers가 애니메이션을 마치면 새로운 "턴"이 시작되고 변화 위치가 다시 애니메이션을 일으 킵니다.

전체 아이디어는 위치 사이의 선형 보간과 일정한 속도로 상태 간 상태 간의 전환 기반 전환이 실시간 애니메이션처럼 보입니다. 그러나 이것은 많은 다른 Calayers와 함께 달성하기가 어렵습니다.

CaanimationGroup은 단일 칼레이에 애니메이션을 그룹화하는 데 사용됩니다. 그러나 나는 몇몇 Calayers에 동일한 기간을 가지고 있어야하는 그룹 애니메이션에 대한 간단한 해결책이 있습니까?

Kevin Ballard의 질문에 대한 답변을 포함하도록 편집되었습니다.

내 문제는 이것에 있습니다. 나는 각 calayers에 대한 애니메이션을 만들고 Nsarray에 넣는 애니메이션을 만들고 있습니다. 개별 애니메이션이 끝난 콜백을 받으면 NSARRAY를 형성합니다. 비워지면 다시 애니메이션을 만듭니다.

몇 개 이상의 레이어를 사용하면 모든 애니메이션이 끝나는 곳과 새로운 애니메이션이 시작되는 곳 사이에는 눈에 띄는 지연이 있습니다.

이 모든 애니메이션을 하나의 애니메이션으로 그룹화 할 수 있다면 애니메이션 사이의 지연없이 더 많은 레이어를 애니메이션 할 수 있다고 생각합니다. 따라서 인접한 애니메이션의 환상을 망치지 않습니다.

도움이 되었습니까?

해결책

단일 메소드 내에서 여러 Calayers에 애니메이션을 첨부하면 동시에 (효과적으로) 모두가 시작됩니다. 나는 애니메이션의 끝에 애니메이션의 다음 단계를 추가 애니메이션에 첨부하는 애니메이션의 끝에서 공을 떨어 뜨리는 공을 가지고 퍼즐 게임 에서이 접근법을 사용합니다.

나는 한 번에 최대 60 명의 Calayers를 애니메이션하고 있고 애니메이션의 단계 사이에 지연이 발생하지 않지만 어떤 종류의 배열에서 애니메이션을 캐시하지는 않지만, 당신이 거기에있는 오버 헤드가 확실하지 않습니다.

내 애니메이션은 비교적 간단하고 각 칼레이에 생성 및 연결되어 있습니다. 내 스프라이트는 60px 정사각형이며 콘텐츠를 표현하기 위해 수십 개의 가능한 이미지를 사용합니다.

경우에 따라 다른 시작 시간 (Begintime 사용)으로 만들 수있는 곱셈 애니메이션이있는 경우, 카니 메이션 그룹으로 묶을 수 있지만 후속 애니메이션을 미리 계산할 수는 없습니다.

다른 팁

애니메이션을 Catransaction으로 랩핑하면 CG는 메인 루프의 동일한 반복 중에 모두 실행되도록합니다.

Catransaction Begin]; // 모든 애니메이션 [Catransaction Commit];

3 개의 다른 레이어에 동시에 3 개의 애니메이션을 추가하고 동시에 같은 기간이 있으면 모두 애니메이션을 할 것으로 기대합니다. 어떤 행동을보고 있습니까?

CP21YOS : 방법에 대해 자세히 설명 할 수 있습니까? 나는 비슷한 일을하려고 노력하고 있습니다. 여기에는 한 번에 여러 레이어를 두 번 이상 애니메이션하는 것과 관련이 있습니다. "애니메이션의 끝에서 나는 애니메이션의 다음 단계를 첨부합니다." 설명해 주시겠습니까? AnimationDidStop 이벤트에서 추가 애니메이션을 수행하기 위해 논리를 설치하려고 할 때, 전체 애니메이션 시퀀스 대신 마지막 애니메이션 만 발생합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top