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

次の 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 の最初のコード: はSo:
[_flashLayer setColor:ccc3(255, 255, 255)]である必要があります。ccc4(255, 255, 255,255)

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

于 2013-03-25T06:33:51.497 に答える