iAd干扰了我的SKScene课程

时间:2014-02-18 02:03:21

标签: ios sprite-kit iad

对不起,这个问题的标题有点含糊不清。

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

我的问题出现在用户按下iAd时。暂停游戏时会显示iAd,只需点击屏幕即可暂停游戏。因此,当用户点击iAd时(在游戏暂停时),iAd会在游戏停止运行时全屏显示。

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

我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

让您的场景符合AdBannerViewDelegate协议。如果场景是横幅的委托,您可以在场景BOOL中实现_bannerIsActive ivar。然后:

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

在你的非暂停逻辑中你需要检查BOOL并且只在_bannerActive == NO时重启游戏。

当然,当横幅完成其动作时,您需要将其设置为NO:

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

答案 1 :(得分:0)

我在制作的游戏中遇到了类似的问题。当播放器丢失时,我显示了排行榜按钮,但也“点击任意位置重启”。因此,当我点击排行榜按钮时,游戏开始并在排行榜后面跑。所以我觉得我的解决方案可能属于你的。

制作一个if语句,只有当用户点击某处并且没有点击另一个对象(iAd)时,游戏才会取消暂停。