1

我尝试添加一个图层,其所有目的都是用白色填充整个场景。

我尝试这样做:

// 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:'

我查看了源代码,一切似乎都符合预期。

任何人都可以对这个问题有所了解吗?

谢谢。

4

3 回答 3

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];
于 2012-04-21T10:09:02.650 回答
0

只是一个建议。检查图层的 contentSize。在 cocos2d-x 实现设置 contentSize 更改要绘制的多边形顶点。我现在没有iPhone版的cocos2d,但我觉得可以一样

于 2012-04-21T09:50:41.620 回答
0

在OP的第一个代码中:
[_flashLayer setColor:ccc3(255, 255, 255)]应该是ccc4(255, 255, 255,255)
So:
_flashLayer = [[CCLayerColor alloc] initWithColor: ccc4(255,255,255,255)];

于 2013-03-25T06:33:51.497 回答