gpt4 book ai didi

ios - 如何在 SpriteKit 中添加 iAd 并在场景变化时停用它?

转载 作者:行者123 更新时间:2023-11-28 06:44:44 25 4
gpt4 key购买 nike

在我的游戏文件 GameScene 中,我编写了要在其中显示的 iAd 代码。

func addiAd(){
bannerView = ADBannerView(adType: .Banner)
bannerView.delegate = self
bannerView.hidden = true
bannerView.frame = CGRectOffset(bannerView.frame, 0.0, 0.0)
bannerView.center = CGPointMake(bannerView.center.x,
(view?.bounds.size.height)! - bannerView.frame.size.height/2)
view!.addSubview(bannerView)
print("iAd is working")
}

func bannerViewDidLoadAd(banner: ADBannerView!) {
bannerView.hidden = false
}

func bannerViewActionDidFinish(banner: ADBannerView!) {
bannerView.removeFromSuperview()
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
bannerView.hidden = true
}

好吧,乍一看它可以工作,但并不完美,因为当一个场景转换到另一个名为 GameOverScene 的游戏场景文件时,我的 bannerView 不会消失并保持不变它永远出现的地方,直到运行结束。我想停用这个。是不是我上面的代码写错了?在我的源代码中,我总共想要在 GameSceneGameOverScene 中分别使用两个 adBanner View 。我对错误的假设是我没有在 GameViewController 中编写这些代码,但我不确定。你能告诉我如何实现它并解释它必须写在哪里吗?

最佳答案

在 iAd 委托(delegate)方法中,您可以更改 alpha横幅的属性。例如:

func bannerViewDidLoadAd(banner: ADBannerView!) {
bannerView.alpha = 1.0
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
bannerView.alpha = 0.0
}

然后当您改变场景或想要确保 iAd 横幅不出现时,您可以设置它的 hidden属性(property)。例如:

func hideBanner() {
// Call whenever you don't want the ADBannerView to be on screen
bannerView.hidden = true
}

func showBanner() {
// Call when you want the ADBannerView to be on screen
bannerView.hidden = false
}

这需要您更新您的 addiAd功能还:更改bannerView.hidden = truebannerView.alpha = 0.0 .

最后,您不应该在此处从 Superview 中删除 iAd 横幅:

func bannerViewActionDidFinish(banner: ADBannerView!) {
bannerView.removeFromSuperview()
}

关于ios - 如何在 SpriteKit 中添加 iAd 并在场景变化时停用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36834792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com