2011-12-15 11 views
1

私はこのtweejumpアプリをGithubにダウンロードしました。それは、Xcodeの3.2.3でうまくいきましたが、今私は4.2をXCodeのようにアップグレードすることを、それは、この行でエラーを示していますReadonly属性を持つプロパティに割り当てることはできません

cloud.opacity = 128; 

コンテキスト:

- (void)initCloud { 

    CGRect rect; 
    switch(random()%3) { 
     case 0: rect = CGRectMake(336,16,256,108); break; 
     case 1: rect = CGRectMake(336,128,257,110); break; 
     case 2: rect = CGRectMake(336,240,252,119); break; 
    } 

    AtlasSpriteManager *spriteManager = (AtlasSpriteManager*)[self getChildByTag:kSpriteManager]; 
    AtlasSprite *cloud = [AtlasSprite spriteWithRect:rect spriteManager:spriteManager]; 
    [spriteManager addChild:cloud z:3 tag:currentCloudTag]; 

    cloud.opacity = 128; 
} 

それはassigning to property with readonly attribute not allowed言います。

どのような問題があるようですか? xcode 4.2へのアップグレードはそれに影響しますか?

私が言ったように、私はちょうどそれをダウンロードしたので、私は、プロパティは次のように定義された、とあなたが指摘Gitのリポジトリに含まれているcocos2dソースを見てみると...、何をすべきか

+0

このCocos2d 0.8ですか? – kennytm

+0

私は知りません..私はこのバージョンのcocos2dが最新のものではないと考えます。 – NoobMe

+0

Cocos2d 1.0からCCSpriteを使用すると 'opacity'を変更できますが、すべてを書き直す必要があるかもしれません。 – kennytm

答えて

2

を知りません:

@property (readonly) GLubyte opacity, r, g, b;. 

はい、読み取り専用です。しかし、CocosNodeRGBAプロトコルは、opacityプロパティのgetterとsetterの両方を定義しています。したがって、2つの異なるコンパイラが実際に不透明度を設定できることに気づく別のものをピックアップしているようですが、もう1つはプロパティを尊重します。私は不透明度の設定を変更するために十分安全であるべきだと思います

[cloud setOpacity:128]; 

は、詳細についてはこちらをご覧ください:http://www.cocos2d-iphone.org/forum/topic/25332

関連する問題