Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CCSprite不';t隐身-iphone_Iphone_Ios_Cocos2d Iphone - Fatal编程技术网

CCSprite不';t隐身-iphone

CCSprite不';t隐身-iphone,iphone,ios,cocos2d-iphone,Iphone,Ios,Cocos2d Iphone,在.h文件中 CCSprite *backwheels; in .m file backwheels = [CCSprite spriteWithFile:@"wheels_back.png"]; backwheels.position = ccp(400,120); [self addChild:backwheels]; -(void) showGameOver { backwheels.visible = false; } 但当游戏结束时,背景仍会

在.h文件中

CCSprite *backwheels;

in .m file

    backwheels = [CCSprite spriteWithFile:@"wheels_back.png"];
    backwheels.position = ccp(400,120);
    [self addChild:backwheels];

-(void) showGameOver {
      backwheels.visible = false;
}
但当游戏结束时,背景仍会出现在场景中! 有人帮忙吗?! 注意:我也合成了backWheels,但仍然不适用于我。

使用移除子对象:

[self removeChild:backwheels cleanup:YES];

我可以给你一个快速修复。这不是最好的方法,最好的方法是找出到底是什么导致了这种行为,但我不能不看代码的其余部分就这样做。无论如何,这就是如何在
showGameOver
方法中访问backwheels sprite。创建精灵时,请按以下方式进行:

 backwheels = [CCSprite spriteWithFile:@"wheels_back.png"];
 backwheels.position = ccp(400,120);
 backwheels.tag = 100; // whatever integer value you wish
[self addChild:backwheels];
然后在
showGameOver
中检索它:

backwheels = [self getChildByTag:100];
backwheels.visible = false;

我相信它会起作用的

您可以随时更改精灵的不透明度,即

-(void) showGameOver {
      backwheels.opacity = 0.0f;
}
然后当你想让它重新出现时,把它改成

backwheels.opacity = 1.0f;

showGameOver有人打电话吗?当然有。。我还有另一个CCSprite对象,它也驻留在showGameOver方法中,当我编写cannon.visible=false时它不可见;我脑海中出现的唯一可能的原因是没有看到您的代码的其余部分,因为您的backwheels指针没有指向屏幕上显示的实际精灵,但我也合成了它,但仍然无法工作。从Xcode 4.5开始,您不再需要合成属性。综合与否与问题无关。尝试签入showGameOver方法-除了可见性之外,您还可以更改任何其他的后轮。我很确定你不能改变它的旋转、比例或颜色。检查一下为什么要投否决票????如果要从视图中删除所有子级,还可以使用[self-removeAllChildrenWithCleanup:YES];我没有投反对票。但如果我有足够的声誉,我会投。不管怎样,当我使用visible或setVisible属性时,这意味着我想稍后使用CCsprite对象。删除孩子不是解决方案。你不会相信,但这对我也不起作用。它在showGameOver方法“从CCNode*分配给CCSprite*的不可计算指针类型”中显示了警告,请尝试CCNode*测试=[self-getChildByTag:100];test.visible=false;还是一样。。我不知道为什么它不工作..我发誓除了上面提到的代码之外,我没有为backwheels编写任何代码(在创建backwheels之后立即检查backwheels的地址:backwheels=[CCSprite spriteWithFile:@“wheels_back.png”];NSLog(@“%p”,backwheels);以及通过标记NSLog检索的对象的地址(@“%p”,[self-getChildByTag:100);告诉我他们是平等的还是不平等的问题解决了!!@Andrey Cheernukha非常感谢你们宝贵的时间:)