스프라이트 시트의 문자에 대해 5 프레임 실행 애니메이션이 있습니다. 이 캐릭터에 선글라스, 모자 등의 여러 가지 "업그레이드"를 제공하고 싶습니다.이 작업을 수행하는 "올바른 방법"을 알지 못하므로 여기에 내가 한 작업이 있습니다.Cocos2dx에서 여러 스프라이트 애니메이션 조정
스프라이트 그 자체를 추가하고 캐릭터를 먼저 추가 한 다음 모자를 맨 위에 추가했습니다. 모자이크가 스프라이트 시트의 해당 문자 머리에있을 수있는 위치에 대한 5 프레임 애니메이션이 있으며 주인공과 동일한 매개 변수로 애니메이션을 적용 할 수 있습니다.
문제는 두 스프라이트를 동시에 (문자 스프라이트와 모자 스프라이트)에 애니메이션을 적용하려고하면 동기화되지 않는 것입니다. 때로는 위대한 작품이지만, 때로는 타이밍이 약간 모자라는데, 머리가 모자 꼭대기를 지나갈 정도로 모자라거나, 모자가 매 단계마다 튀어 나오게됩니다.
현재의 솔루션은 업데이트 틱이 있어야하며 몇 밀리 초가 지나면 수동으로 프레임을 순환해야합니다. 그러나 수동으로 프레임을 설정하고 있기 때문에 프레임 시간을 늘리는 것이 좋습니다. 필요합니다.
그래서 스프라이트 시트에 모자이크 스프라이트 시리즈를 사용하지 않고 모자를 스프라이트에 추가하고 함께 애니메이션을 유지하는 것이 올바른 방법 일 수 있습니다.
편집 : 죄송합니다.이 태그는 잘못되었습니다. 분명히 cocos2dx 질문이라는 사실에도 불구하고이 "cocos2dx"에 태그를다는 데 충분한 평판이 없습니다.
은'hat' 스프라이트'문자'의 자식입니다. – GameDeveloper
아니요, 문자 스프라이트와 모자 스프라이트가 모두 내 .h 파일에 선언 된 빈 "클래스 MovingObjects : public Layer {}"에 추가됩니다. 그 다음 장면에 추가되었습니다. 각 스프라이트에서 2 개의 동시 애니메이션을 트리거 할 때 동기식으로 나오지 않으므로 지금은 변수 "_timeToTriggerNextFrame"을 설정하고 getTimeTick()이이를 초과하면 수동으로 각각의 프레임을 설정합니다. "_currentRunFrame ++"변수를 사용하고 setSpriteFrame을 사용하여 각각에 대해 다음 프레임을 수동으로 설정합니다. 그것의 기능적이지만 아마도 더 좋은 방법이 있습니다. – redux