如何从视图控制器类加载cocos2d场景?

时间:2014-08-19 19:54:05

标签: objective-c uiviewcontroller cocos2d-iphone iad ccscene

1)我使用cocos2d-iphone v3制作了一款游戏。

2)我整合了一个全屏广告。

3)我想在用户关闭广告时加载cocos2d场景,但它不起作用(我导入了cocos2d框架)。广告在动画消失后只有一个黑屏。 " interstitialAdDidFINISH"出现在输出中,最有可能的是,最后一行是错误的。

-(void)interstitialAdActionDidFinish:(ADInterstitialAd *)interstitialAd {
    interstitial = nil;
    //    [interstitialAd release];
    // [ADInterstitialAd release];
    requestingAd = NO;
    NSLog(@"interstitialAdDidFINISH");
    [[CCDirector sharedDirector] replaceScene:[CCBReader loadAsScene:@"MainScene"]];

}

我想,我无法从UIViewController类加载cocos2d场景这么容易..... 我怎么能这样做?

编辑:那么?它不是零

 if ( [CCDirector sharedDirector].view != nil) {
        NSLog(@"Hey there");
    }

编辑2:我发现,[CCDirector sharedDirector]];也是一个ViewController。 我试过这样的事。在iAd结束后,游戏崩溃了。

    [self addChildViewController:[CCDirector sharedDirector]];
    [self presentModalViewController:[CCDirector sharedDirector] animated:NO];
    [[CCDirector sharedDirector] replaceScene:[CCBReader loadAsScene:@"MainScene"]];

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。可能对其他人有帮助。

首先,我是如何从MainScene

呈现iad视图控制器的
  *ViewControllerAdEx= [[ ViewControllerAd alloc] init]; // making an instance of iad class
  [[CCDirector sharedDirector] presentModalViewController:ViewControllerAdEx animated:YES]; 
  [ViewControllerAdEx showFullScreenAd]; // caling a method from class

在iad课程中,当iad完成工作时:

[self dismissViewControllerAnimated:YES completion:^{
     [[CCDirector sharedDirector] replaceScene:[CCBReader loadAsScene:@"MainScene"]];
    }];