2012-02-02 5 views
1

제 게임은 여러 가지 파티클 시스템을 사용합니다. 매번 첫 번째 파티클 시스템 인 stars.plist를 사용할 때마다 다음 파티클에 stars.plist 텍스처가 사용됩니다. 다음 입자가 비는 경우 (그렇다면, 내가 사용하십시오 별 비 :( 것 [ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile는 : @ ""], 같은 :cocos2d 게임, ccparticle 시스템 텍스처가 엉망이되었습니다.

CCParticleSystem* rain = [ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile:@"rain.plist"]; 
[self addChild:rain z:-1]; 

과 비를 초기화하기 전에, 나는 프리로드를 호출해야 간단하게 사용하여 입자 :. 재생 내 옆에있는 입자가 meteor.plist 경우

[ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile:@"rain.plist"]; 

다음, 사용 된 텍스처는 여전히 rain.plist의 질감입니다

나는 유성을 표시하기 위해 같은 방법을 사용합니다

NSString* fn = [NSString stringWithFormat:@"meteor%i.plist", random]; 
    CCParticleSystem* meteor = [ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile:fn]; 

3gs 및 iPhone 4와 시뮬레이터에서 CCParticleQuad와 CCParticlePoint를 시도했지만 여전히 동일한 문제가 있습니다.

+0

가 어떻게 질감을 제공 않습니다 즉, 당신은 여전히이 같은 파일을로드하여 수동으로 질감을 적용 할 수 실패하면

? 그것은 .plist 파일에 인코딩되어 있습니까? 아니면 별도의 파일입니까? 이전에 plist에 포함 된 텍스처와 비슷한 문제가 있었는데, 그것이 내가 묻는 이유입니다. – bummzack

+0

하나의 단일 plist 파일. – OMGPOP

+0

그럼 분리 된 파일로 변경하면 효과가 있습니까? – OMGPOP

답변

3

텍스처 데이터가 .plist 파일 내에 포함 된 경우 cocos2d는 해당 데이터를 추출하여 내부적으로 텍스처로 저장합니다. 텍스처는 텍스처 파일 이름과 함께 키로 저장됩니다. 따라서 내부적으로 동일한 텍스처 파일 이름을 사용하는 두 개의 파티클 시스템이있는 경우로드 된 텍스처 첫 번째이 동일한 텍스처 파일 이름의 모든 후속 용도에 적용됩니다!

쉽게 확인할 수있는 방법은 .plist 파일을보고 키를 검색하는 것입니다. 이 키는 각 텍스처마다 다릅니다. 이미지 데이터가 .plist 파일에 내장되어 있으므로이 값을 원하는 값으로 변경할 수 있습니다. 예 : 별표는 starparticle.png, 비는 rainparticle.png 등 모든 고유 한 질감에 대해 고유 한 것을 사용하십시오.

[rain setTexture: [[CCTextureCache sharedTextureCache] addImage:"particleTexture.png"]]; 
+1

내 입자 중 일부는 (null) .tiff를 textureFileName으로 사용합니다. 나는 어떻게해야합니까? – OMGPOP

+0

@ Let'sSpotIt 그냥 파일을 편집하고 각 텍스처에 고유 한 파일 이름을 지정합니다 ... 제가 답변에 적었습니다. 예 : 비 입자 시스템의 경우'rainparticle.png', 별 입자 시스템의 경우'starparticle.png' 등이 있습니다. – bummzack

+0

어쨌든 그것을 변경하여 효과적이었습니다. 왜 입자 디자이너가 텍스처를 같은 이름으로 설정했는지 궁금합니다. – OMGPOP