Objective c 精灵套件中的iAd暂停场景

Objective c 精灵套件中的iAd暂停场景,objective-c,swift,iad,Objective C,Swift,Iad,我在执行iAd横幅时遇到问题,在横幅被点击之前,一切正常,横幅导航正常 当我关闭“添加精灵工具包”场景时,就像冻结一样,更新方法正在工作,因为我可以看到NSLog。。但一切都和点击“添加”之前一样,即使我点击,也没有任何效果,或者至少没有显示出来 因此,我的问题是如何在关闭添加后“恢复”游戏,iAd使用某种self.view.paused=YES 我已经阅读了很多,甚至是苹果的文档,但我找不到他们“暂停”我的游戏的方式,这里我向你展示了iAD的实现,我想这是非常糟糕的 @implementati

我在执行iAd横幅时遇到问题,在横幅被点击之前,一切正常,横幅导航正常

当我关闭“添加精灵工具包”场景时,就像冻结一样,更新方法正在工作,因为我可以看到
NSLog
。。但一切都和点击“添加”之前一样,即使我点击,也没有任何效果,或者至少没有显示出来

因此,我的问题是如何在关闭添加后“恢复”游戏,iAd使用某种
self.view.paused=YES

我已经阅读了很多,甚至是苹果的文档,但我找不到他们“暂停”我的游戏的方式,这里我向你展示了iAD的实现,我想这是非常糟糕的

@implementation GoViewController

- (void)viewDidLoad
{
    [super viewDidLoad];


    skView = (SKView *)self.view;
    //skView.showsFPS = YES;
    //skView.showsNodeCount = YES;

    // Create and configure the scene.
    scene = [GoMyScene sceneWithSize:skView.bounds.size];
    scene.scaleMode = SKSceneScaleModeAspectFill;

    // Present the scene.
    NSLog(@"%@",skView);
    self.canDisplayBannerAds = YES;



    [skView presentScene:scene];
}

- (BOOL)shouldAutorotate
{
    return YES;
}
-(void)viewWillLayoutSubviews{

}
- (NSUInteger)supportedInterfaceOrientations
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        return UIInterfaceOrientationMaskAllButUpsideDown;
    } else {
        return UIInterfaceOrientationMaskAll;
    }
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.
}
- (BOOL)prefersStatusBarHidden {
    return YES;
}
-(void)bannerViewDidLoadAd:(ADBannerView *)banner{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];
    [banner setAlpha:1];
    [UIView commitAnimations];
    NSLog(@"ADD ON");

}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];
    [banner setAlpha:0];
   // [UIView commitAnimations];
    NSLog(@"ADD OFFFFFFFF");

}



-(void)bannerViewActionDidFinish:(ADBannerView *)banner{

    NSLog(@"banner finished");
    //[self bannerViewActionShouldBegin:banner willLeaveApplication:YES];
    //[UIView setAnimationBeginsFromCurrentState:YES];


}
-(void)bannerViewWillLoadAd:(ADBannerView *)banner{
    NSLog(@"banner starting to show");

}

将self.candisplaybanerads与spritekit一起使用时通常会出现问题。我一直试图让它发挥作用,但没有结果。相反,我使用以下代码:

adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.delegate = self;
[adView setFrame:CGRectMake(0, 0, 1024, 768)]; // set to your screen dimensions
[adView setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:adView];
首先在Viewcontroller的界面文件中初始化ADBannerView*adView变量,然后可以在ViewDidLoad方法中使用上述代码


它非常适合我,在点击广告后不会出现任何暂停或无响应的问题。

将self.candisplaybanerads与spritekit一起使用时通常会出现问题。我一直试图让它发挥作用,但没有结果。相反,我使用以下代码:

adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.delegate = self;
[adView setFrame:CGRectMake(0, 0, 1024, 768)]; // set to your screen dimensions
[adView setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:adView];
首先在Viewcontroller的界面文件中初始化ADBannerView*adView变量,然后可以在ViewDidLoad方法中使用上述代码


它非常适合我,在点击广告后不会出现任何暂停或无响应的问题。

将self.candisplaybanerads与spritekit一起使用时通常会出现问题。我一直试图让它发挥作用,但没有结果。相反,我使用以下代码:

adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.delegate = self;
[adView setFrame:CGRectMake(0, 0, 1024, 768)]; // set to your screen dimensions
[adView setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:adView];
首先在Viewcontroller的界面文件中初始化ADBannerView*adView变量,然后可以在ViewDidLoad方法中使用上述代码


它非常适合我,在点击广告后不会出现任何暂停或无响应的问题。

将self.candisplaybanerads与spritekit一起使用时通常会出现问题。我一直试图让它发挥作用,但没有结果。相反,我使用以下代码:

adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
adView.delegate = self;
[adView setFrame:CGRectMake(0, 0, 1024, 768)]; // set to your screen dimensions
[adView setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:adView];
首先在Viewcontroller的界面文件中初始化ADBannerView*adView变量,然后可以在ViewDidLoad方法中使用上述代码


它非常适合我,在点击广告后不会出现任何暂停或无响应的问题。

如果有人在swift中遇到任何问题,这里是与swift中相同的代码(只是更改了一些位)。 这对我来说很好

            AdBanner = ADBannerView()
        AdBanner.frame = CGRectZero
        AdBanner.delegate = self
        self.AdBanner.frame = CGRectMake(0, self.view.frame.size.height-self.AdBanner.frame.size.height, self.AdBanner.frame.size.width, self.AdBanner.frame.size.height)
        AdBanner.backgroundColor = UIColor.clearColor()
        self.view .addSubview(AdBanner)

如果任何人在swift中有任何问题,这里是与swift中相同的代码(只是更改了一些位)。 这对我来说很好

            AdBanner = ADBannerView()
        AdBanner.frame = CGRectZero
        AdBanner.delegate = self
        self.AdBanner.frame = CGRectMake(0, self.view.frame.size.height-self.AdBanner.frame.size.height, self.AdBanner.frame.size.width, self.AdBanner.frame.size.height)
        AdBanner.backgroundColor = UIColor.clearColor()
        self.view .addSubview(AdBanner)

如果任何人在swift中有任何问题,这里是与swift中相同的代码(只是更改了一些位)。 这对我来说很好

            AdBanner = ADBannerView()
        AdBanner.frame = CGRectZero
        AdBanner.delegate = self
        self.AdBanner.frame = CGRectMake(0, self.view.frame.size.height-self.AdBanner.frame.size.height, self.AdBanner.frame.size.width, self.AdBanner.frame.size.height)
        AdBanner.backgroundColor = UIColor.clearColor()
        self.view .addSubview(AdBanner)

如果任何人在swift中有任何问题,这里是与swift中相同的代码(只是更改了一些位)。 这对我来说很好

            AdBanner = ADBannerView()
        AdBanner.frame = CGRectZero
        AdBanner.delegate = self
        self.AdBanner.frame = CGRectMake(0, self.view.frame.size.height-self.AdBanner.frame.size.height, self.AdBanner.frame.size.width, self.AdBanner.frame.size.height)
        AdBanner.backgroundColor = UIColor.clearColor()
        self.view .addSubview(AdBanner)

对于使用iADBannerView遇到此问题的任何人。以下是工作iADBannerView的完整代码。我在Xcode-7 Beta版中使用Objective-C。暂停和恢复游戏会自动运行,无需额外的暂停或恢复代码

#import <iAd/iAd.h>

@interface GameScene()<ADBannerViewDelegate>{
ADBannerView *adBanner;
}
- (void)didMoveToView:(SKView *)view {
[self setUpInitalBanner];
}
-(void)bannerViewDidLoadAd:(ADBannerView *)banner{
NSLog(@"Got iAD");
CGRect visibleFrame = adBanner.frame = CGRectMake(0,0 +self.view.frame.size.height -adBanner.frame.size.height, self.view.frame.size.width,50);
adBanner.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin;
adBanner.layer.zPosition = 100;
[self.view addSubview:adBanner];
[adBanner setHidden:false];
[UIView animateWithDuration:1.0f delay:0.0f options:UIViewAnimationOptionCurveLinear animations:^{[banner setFrame:visibleFrame];}completion:nil];
[adBanner setAlpha:1];
[UIView commitAnimations];
}
-(BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave{
NSLog(@"Leaving app for iAD");
adBanner.frame = CGRectMake(0, 0 +self.view.frame.size.height -banner.frame.size.height, self.view.frame.size.width, 50);
return YES;
}
-(void)bannerViewActionDidFinish:(ADBannerView *)banner{
NSLog(@"Banner Did Finish Action");
adBanner.frame = CGRectMake(0, 0+self.view.frame.size.height-banner.frame.size.height, self.view.frame.size.width, 50);
}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
NSLog(@"Failed To Get iAD");
[adBanner setHidden:true];
CGRect hiddenFrame = adBanner.frame = CGRectMake(0, 0 +self.view.frame.size.height +adBanner.frame.size.height, self.view.frame.size.width, 50);
adBanner.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin;
[self.view addSubview:adBanner];
adBanner.layer.zPosition = 100;
[UIView animateWithDuration:1.0f delay:0.0f options:UIViewAnimationOptionCurveLinear animations:^{[adBanner setFrame:hiddenFrame];} completion:nil];
[adBanner setAlpha:0];
[UIView commitAnimations];
}

-(void)setUpInitalBanner{
adBanner = [[ADBannerView alloc] initWithFrame:CGRectMake(0, 50, self.view.frame.size.width, 50)];
adBanner.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;
adBanner.delegate = self;
adBanner.layer.zPosition = 100;
}
#导入
@界面游戏场景(){
adBanner视图*adBanner;
}
-(void)didMoveToView:(SKView*)视图{
[自我设置初始阿尔巴纳];
}
-(无效)BannerView IDLoadAD:(ADBannerView*)横幅{
NSLog(@“获得iAD”);
CGRect visibleFrame=adBanner.frame=CGRectMake(0,0+self.view.frame.size.height-adBanner.frame.size.height,self.view.frame.size.width,50);
adBanner.autoresizingMask=UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeLeftMargin | UIViewAutoresizingFlexibleRightMargin;
adBanner.layer.zPosition=100;
[self.view addSubview:adBanner];
[adBanner setHidden:false];
[UIView animateWithDuration:1.0f延迟:0.0f选项:UIView AnimationOption曲线动画:^{[banner setFrame:visibleFrame];}完成:无];
[α:1];
[UIView委员会];
}
-(BOOL)banner视图操作应开始:(adbanner视图*)banner将离开应用程序:(BOOL)将离开{
NSLog(@“离开应用程序进行iAD”);
adBanner.frame=CGRectMake(0,0+self.view.frame.size.height-banner.frame.size.height,self.view.frame.size.width,50);
返回YES;
}
-(无效)bannerViewActionDidFinish:(ADBannerView*)横幅{
NSLog(@“Banner完成了操作”);
adBanner.frame=CGRectMake(0,0+self.view.frame.size.height-banner.frame.size.height,self.view.frame.size.width,50);
}
-(无效)bannerView:(ADBannerView*)banner接收失败,错误为:(N错误*)错误{
NSLog(@“无法获取iAD”);
[adBanner setHidden:true];
CGRect hiddenFrame=adBanner.frame=CGRectMake(0,0+self.view.frame.size.height+adBanner.frame.size.height,self.view.frame.size.width,50);
adBanner.autoresizingMask=UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[self.view addSubview:adBanner];
adBanner.layer.zPosition=100;
[UIView animateWithDuration:1.0f延迟:0.0f选项:UIView AnimationOption曲线动画:^{[adBanner setFrame:hiddenFrame];}完成:无];
[adBanner setAlpha:0];
[UIView委员会];
}
-(无效)setUpInitalBanner{
adBanner=[[ADBannerView alloc]initWithFrame:CGRectMake(0,50,self.view.frame.size.width,50)];
adBanner.autoresizingMask=UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHight | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingLeftMargin