我在Github上下载了这个tweejump应用。它适用于xcode 3.2.3,但现在我升级到xcode 4.2,它在这一行显示错误:
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会影响它吗?
我不知道该怎么做,因为就像我说的那样,我只是下载了它......
答案 0 :(得分:2)
查看您指向的Git仓库中包含的cocos2d源,该属性定义为:
@property (readonly) GLubyte opacity, r, g, b;.
所以是的,它是只读的。但是,CocosNodeRGBA
协议为opacity属性定义了getter和setter。所以看起来两个不同的编译器正在拾取不同的东西,其中一个注意到实际上可以设置不透明度,而另一个则尊重该属性。
我认为将不透明度的设置更改为:
应该足够安全[cloud setOpacity:128];
有关详细信息,请参阅此处:http://www.cocos2d-iphone.org/forum/topic/25332