2012-10-19 4 views
1

Cocos2d v0.99에는 CCSpriteFrameCache라는 클래스가 있습니다. 나는 모든 스프라이트 프레임Cocos2d - 프레임 캐시에 여러 개의 스프라이트 프레임을로드 할 수 있습니까?

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"images.plist"]; 

을로드 할 수 있습니다 후 나는 그로드 프레임 이제

CCSprite *sprite=[CCSprite spriteWithSpriteFrameName:@"img01.png"]; 

를 사용할 수 있습니다 내 질문 : 우리는 우리가 '모든 단일 이미지를 개최 큰 스프라이트 시트를 만들려면 어떻게해야합니까 애니메이션에 다시 사용할 것인가? 내 말은, 나는 다른 애니메이션 객체를위한 스프라이트 시트를 여러 개 가지고 있다고 생각했다. 이 질문에 답이 없다면 각 스프라이트를 다르게로드 할 것입니다. 그런 다음 두 번째 질문은 특정 스프라이트 시트의 프레임을 참조하는 방법입니다.

답변

3

가능하면 ... 그것은 도움이되기를 바랍니다. 결정 요인은 상당히 자주 z 순서입니다. 두 개의 atlases와 두 개의 스프라이트 배치 노드가있는 경우 각 스프라이트 배치 노드는 z 순서로만 스프라이트를 렌더링 할 수 있지만 다른 배치 노드의 스프라이트는 항상 앞에 또는 뒤에 있습니다.

스프라이트 프레임이 생성 된 텍스처 용지 (스프라이트 시트)를 알 필요가 없습니다. 그냥 이름으로 참조하십시오. 프레임에서 참조하는 텍스처를 알아야하는 경우 스프라이트 프레임의 텍스처 속성을 확인하고 스프라이트 배치 노드의 텍스처 속성과 비교하십시오.

4

이제 제 질문은 : 우리가 애니메이션에 사용할 모든 단일 이미지를 보유 할 큰 스프라이트 시트를 만드나요?

예, 또는 당신이 많은 다른 프레임 이미지가있는 경우 여러 스프라이트 시트를 가질 수는 ...

내 말은

, 나는 다른 애니메이션 오브젝트에 대한 몇 가지 스프라이트 시트를 거라고 생각했다.

결과 스프라이트 시트의 크기에 따라 다릅니다. 원칙적으로 같은 시트 내에서 동일한 애니메이션의 서로 다른 프레임을 구성하는 것이 편리하지만, 프레임이 600x600과 같은 경우에는 스프라이트 시트가 1024x1024 시트와 동일한 메모리를 차지하므로 더 많이 추가하는 것이 좋습니다 프레임이 다른 애니메이션과 관련되어 있더라도 동일한 시트에 표시됩니다. 일반적으로 시트 크기로 재생할 수 있습니다. 두 치수 모두 2의 거듭 제곱이면 메모리 작업에 비효율적이지 않으며 프레임이 다른 시트로 구성 될 수 있습니다.

이 질문에 대한 답변이 '아니오'인 경우 각 스프라이트를 다르게로드하면 두 번째 질문은 특정 스프라이트 시트의 프레임을 어떻게 참조 할 수 있습니까? 스프라이트 시트로 구성되었다 원래의 파일 이름으로

...

은 가능한 한 적은 텍스처지도 책에 많은 이미지를 벼락 공부,