2012-04-21 2 views
1

전체 장면을 흰색으로 채우는 것이 모든 목적의 레이어를 추가하려고합니다. 내가 같이 그 일을하려고CCLayerColor가 예상대로 작동하지 않습니다.

은 다음과 같습니다

// Inside a cass which extends CCScene 
- (id)init { 
    if (self = [super init]) {      
     // Create the flash layer on level restart 
     _flashLayer = [[CCLayerColor alloc] init]; 
     [_flashLayer setColor:ccc3(255, 255, 255)]; 
     [self addChild:_flashLayer z:0]; 
     [_flashLayer release];   
    } 

    return self; 
} 

문제는 내가 레이어의 색상을 설정 어떻게 상관없이 검은 화면을 얻을 수 없다는 것입니다. 내가 레이어를 만들려고하면 또 다른 한가지는, 다음과 같이

_flashLayer = [[CCLayerColor alloc] initWithColor:ccc4(255, 255, 255, 255)]; 

나는 다음과 같은 오류 얻을 :

Incompatible type for argument 1 of 'initWithColor:' 

나는 소스에 보니 모든 것이 예상 할 수있는 것처럼 보인다합니다.

누구든지이 문제에 관해 밝힐 수 있습니까?

감사합니다.

+0

장면의 다른 요소 (다른 레이어와 스프라이트)가 예상대로 나타납니다. – giorashc

답변

2

될 수 있다고 생각 : 영업의 첫 번째 코드에서

_flashLayer = [[CCLayerColor layerWithColor:ccc4(255, 255, 255, 255)]; 
[self addChild:_flashLayer z:0]; 

또는

// the key is to add (CCLayerColor *) to cast 
// or you will meet 'incompatible type for argument' error at compile time 
_flashLayer = [(CCLayerColor *)[CCLayerColor alloc] initWithColor:ccc4(255, 255, 255, 255)]; 
[self addChild:_flashLayer z:0]; 
[_flashLayer release]; 
+0

내가 게시 한 첫 번째 선택과 그것이 작동하지 않았다 그리고 이것은 여전히 ​​내가 언급 한 검은 색 문제를 해결하지 않습니다 – giorashc

+1

당신의 게시물에 성명과의 차이를 알았습니까? 'initWithColor'를 사용하기를 원한다면 클래스 메소드'layerWithColor'를 사용하거나 ** alloc 전에 캐스트'(CCLayerColor *)'**를 추가해야합니다. – Hailei

+0

네, 두 번째 선택을 시도하고 모든 작품 매력처럼. 감사 ! (alloc이 CCLayer 타입을 반환하고 왜 명시 적으로 색상을 설정하는 것이 효과가 없기 때문에 첫 번째 선택에 대해서는 아직 모호합니다.) – giorashc

0

그냥 제안. 레이어의 contentSize를 확인하십시오. cocos2d-x 구현 설정에서 contentSize는 그려 질 폴리곤 정점을 변경합니다. 지금 당장적인 Cocos2D의 아이폰 버전이없는,하지만 난 당신이 두 가지 선택이이 같은

+0

contentSize는 괜찮은 것 같습니다 ... 버전 1.0.1이 있지만 버전과 관련된 내용을 찾지 못했습니다. – giorashc

0

을 :
[_flashLayer setColor:ccc3(255, 255, 255)]은 그래서 ccc4(255, 255, 255,255)
해야한다 :
_flashLayer = [[CCLayerColor alloc] initWithColor: ccc4(255,255,255,255)];

관련 문제