繁体   English   中英

iAd干扰了我的SKScene课程

[英]iAd interfering with my SKScene class

抱歉,这个问题的标题有点含糊。

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

我的问题出在用户按下iAd时。 暂停游戏时会显示iAd,只需点击屏幕即可取消暂停游戏。 因此,当用户单击iAd(游戏暂停时)时,iAd将以全屏显示,而游戏会自行取消暂停。

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

我该怎么办?

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

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

在非暂停逻辑中,您需要向BOOL检查,并且仅在_bannerActive == NO时才重新启动游戏。

当然,您需要在横幅完成操作后将其设置为“否”:

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

我在制作游戏时遇到类似的问题。 当玩家丢失时,我会显示排行榜按钮,而且还可以“点击任意位置重新启动”。 因此,当我点击排行榜按钮时,游戏开始并在排行榜后面运行。 因此,我觉得我的解决方案可能与您有关。

做出if语句,使之只有在用户点击某个地方并且未轻按另一个对象(iAd)时,游戏才会暂停。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM