2013-02-04 6 views
0

누구든지 Cocos2d 2.x에서 특정 스프라이트의 블렌딩 모드를 GL_FUNC_SUBTRACT로 변경하는 방법을 알고 있습니까?GL Func Cocos2d 빼기

Ive는 몇 가지 시도를했지만 기본적으로 흰색 (또는 검은 색) 원을 사용하고 알파를 숨기는 레이어 마스크를 만들려고합니다.

답변

2

래퍼 Sprite를 구현할 수 있습니다. 그 클래스 (SubSprite라고 가정 해 봅시다)는 CCNode 클래스를 상속 받아 GL_FUNC_SUBTRACT로 그릴 단일 멤버 인 일반 CCSprite를 가져야합니다. 나는 그것을 밖으로 시도하지 않은

-(void) draw{ 
    int oldEquation; 
    glGetIntegerv(GL_BLEND_EQUATION_ALPHA, &oldEquation); 
    glBlendEquation(GL_FUNC_SUBTRACT); 
    [targetSprite draw]; 
    glBlendEquation(oldEquation); 
} 

하지만, 작업을해야하고 전체 스프라이트 그리기 기능을 다시 작성할 필요가 없습니다 :

이 같은 뭔가 그리기 메서드를 재정의

.