我有一个问题,我怀疑这与cocos2d有关,但我使用的是cocos。
我们的应用中有一些场景,我们可以用relpaceScene
-cocos2d方法替换它们。
现在,还有另一个新类,这不是一个视图,除此之外别无其他:从通知中心获得通知,然后替换屏幕上的当前场景。
当我这样做时,替换场景,正在调用该场景的NSLog,但是,该场景中的所有精灵都没有显示,我看到一个白色的屏幕。
似乎有些人如何发布这个类,或者某些东西,或者由于某些原因我无法从这个类替换场景。
这个问题很奇怪,我希望你有任何线索。
替换场景的代码:(适用于其他场景,但不适用于该类)
[[CCDirector sharedDirector] replaceScene:[[BasicSceneWithCat scene] setBackgroundSprite:[CCSprite spriteWithFile:@"bedroom&cat_bg.png"] withType:@"bedroom"]];
调用类和函数,但[self addChild:sprite];
不会发生。
谢谢./
答案 0 :(得分:0)
我无法直接看到您的问题出在哪里,您使用的代码行本身就很不寻常:
尝试一下我给出的例子。 (您需要根据自己的情况更改它)
BasicSceneWithCat *scene = [BasicSceneWithCat scene];
[scene setBackgroundSprite:[CCSprite spriteWithFile:@"bedroom&cat_bg.png"]];
[scene setType:@"bedroom"];
[[CCDirection sharedDirector] replaceScene:scene];
答案 1 :(得分:0)
看来,您的问题是
的错误用法replaceScene:
方法。您必须在此方法中传递CCScene对象作为参数。但是你传递了
的结果setBackgroundSprite:withType:
方法。我认为,它不会返回任何东西。
答案 2 :(得分:0)
请阅读您的问题。我不太确定你想做什么..但你可以尝试一件事......如果通知一般你有一个在场景/图层类中实现的委托方法。所以不要从该类调用..尝试调用方法在场景/图层类中...或者您可以从类中调用方法,如...
[[[CCDirector sharedDirector] runningScene] callMethodToReplaceScene];
并在此方法中正常替换theScene。