如何在Cocos-SpriteBuilder中添加iAd

我正在使用SpriteBuilder(与Cocos2d v3.0集成)。 我build立了一个应用程序,现在我想在我称之为popup的顶端放置一个iAd,当我告诉它时隐藏。 什么是最简单的方法来做到这一点?

请记住,我正在使用SpriteBuilder与Cocos2d。 只是因为我使用SpriteBuilder并不意味着我不使用Xcode 5。 我也充分参与了Xcode。 SpriteBuilder不为我写代码,我这样做。

将iAd框架添加到您的依赖关系。

在您的游戏场景的头文件中,添加ADBannerViewDelegate,例如:

@interface MainScene : CCNode <CCPhysicsCollisionDelegate, ADBannerViewDelegate> 

在你的实现文件中,添加实例variables_bannerView:

 @implementation MainScene { ADBannerView *_bannerView; } 

最后,插入iAD代码(用一些cocos2d调整)。 这是我的肖像模式的游戏与顶部横幅实现。 没有隐藏的方法,但实现起来相当容易。

 # pragma mark - iAd code -(id)init { if( (self= [super init]) ) { // On iOS 6 ADBannerView introduces a new initializer, use it when available. if ([ADBannerView instancesRespondToSelector:@selector(initWithAdType:)]) { _adView = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner]; } else { _adView = [[ADBannerView alloc] init]; } _adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait]; _adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; [[[CCDirector sharedDirector]view]addSubview:_adView]; [_adView setBackgroundColor:[UIColor clearColor]]; [[[CCDirector sharedDirector]view]addSubview:_adView]; _adView.delegate = self; } [self layoutAnimated:YES]; return self; } - (void)layoutAnimated:(BOOL)animated { // As of iOS 6.0, the banner will automatically resize itself based on its width. // To support iOS 5.0 however, we continue to set the currentContentSizeIdentifier appropriately. CGRect contentFrame = [CCDirector sharedDirector].view.bounds; if (contentFrame.size.width < contentFrame.size.height) { _bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; } else { _bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape; } CGRect bannerFrame = _bannerView.frame; if (_bannerView.bannerLoaded) { contentFrame.size.height -= _bannerView.frame.size.height; bannerFrame.origin.y = contentFrame.size.height; } else { bannerFrame.origin.y = contentFrame.size.height; } [UIView animateWithDuration:animated ? 0.25 : 0.0 animations:^{ _bannerView.frame = bannerFrame; }]; } - (void)bannerViewDidLoadAd:(ADBannerView *)banner { [self layoutAnimated:YES]; } - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { [self layoutAnimated:YES]; }