각 효과 유형에 단일 입자 시스템을 사용합니다. 따라서 화재 효과, 불꽃, 폭발 등을위한 것입니다.
카테고리를 사용하여 다음과 같은 기본 Cocos2D 파티클 시스템에 [enable] 및 [disable] 메소드를 추가합니다.
ParticleEnhancement.h
#include "cocos2d.h"
@interface CCParticleSystem (particleEnhancement)
-(void)enable;
-(void)disable;
@end
ParticleEnhancement.m
#import "ParticleEnhancement.h"
@implementation CCParticleSystem (particleEnhancement)
-(void)enable {
active = YES;
elapsed = 0.0f;
}
-(void)disable {
active = NO;
}
@end
그럼 난 그것을 트리거 할 때 난 그냥 위치를 설정하고 사용을 호출합니다. 파티클 시스템은 초기화 설정을 기반으로 한 무리의 파티클을 생성합니다. 시스템은 여러 위치에서 여러 번 트리거 될 수 있으며 이전에 생성 된 입자는 올바르게 작동합니다.
고려해야 할 주요 사항은 단일 시스템을 사용하여 주어진 효과의 여러 인스턴스를 설명하기 위해 더 큰 입자 예산이 필요하다는 것입니다.
또한 폭발과 같은 "트리거 된"효과에는 효과적이지만 연기 흔적과 같은 장기간 지속되는 효과에는 효과가 없을 수도 있으므로 실제로 테스트하지는 않았습니다.
필자는이 방법을 선호합니다. 논쟁의 여지가 적은 입자 시스템이 있고 입자 시스템 풀 설정에 대처할 필요가 없기 때문입니다. 파티클 시스템 자체는 파티클 풀을 처리하므로 시스템 레벨에서 다시 복제 할 필요가 없습니다.
이 기술은 모든 입자 효과에 대해 내 응용 TCG Counter에서 사용 중입니다.
이 질문이 너무 구체적이라고 생각합니다. 나는 Cocos2d의 제작자에게 물어볼 것입니다. –
모두가 해결 했습니까? 그렇게하는 가장 좋은 방법은 무엇입니까? – mm24