2014-02-18 62 views
0

对不起,这个问题的标题有点含糊不清。iAd干扰我的SKScene类

所以我有一个通过视图控制器启动的SpriteKit游戏。我也有一个通过同一个视图控制器显示的iAd。当游戏暂停时,会显示iAd,当游戏未暂停时,我会向视图控制器发送NSNotification以隐藏iAd。

我的问题出现在用户按下iAd时。 iAd在游戏暂停时显示,只需通过点击屏幕即可取消暂停游戏。所以,当用户点击iAd时(游戏暂停时),iAd会在游戏未暂停时全屏显示。

我需要一种方法让我的视图控制器知道当显示iAd时,SKScene不应该接收到某个CGRect(显示iAd的帧)中的任何触摸。

我该怎么做?

回答

0

让你的场景符合AdBannerViewDelegate协议。如果场景是横幅代表,您可以在场景_bannerIsActive中实施BOOL伊娃。然后:

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave{ 
    _bannerIsActive = YES; 
    return YES; 
} 

在您取消暂停逻辑分析,你需要检查对BOOL且仅当重新启动游戏。

当然,你需要将其设置为NO时的旗帜已完成其行动:

- (void)bannerViewActionDidFinish:(ADBannerView *)banner{ 
    _bannerIsActive = NO; 
} 
0

我曾在一场比赛中,我做了类似的问题。当玩家失去时,我会显示排行榜按钮,但也会“随时随地重新开启”。所以,当我点击排行榜按钮时,游戏开始并跑到排行榜的后面。所以我觉得我的解决方案可能与你的相关。

制作一条if语句,以便游戏只有在用户点击某处并且不点击另一个对象(iAd)时才会取消保留。