gpt4 book ai didi

ios - 在 SpriteKit/Swift 中显示 GADBannerView 的最佳方式

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

所以,我发现了两种在我的 SpriteKit 游戏中显示谷歌广告的方法...两种方法都有效,但我担心其中一种更有效等。

我的游戏只有 1 个 ViewController 和 1 个 GameScene。这两种实现的区别在于它们的创建时间和位置。

两者都需要:

import GoogleMobileAds
var googleBannerView: GADBannerView!

这是我最初实现它的方式:

在:GameViewController.swift

override func viewWillLayoutSubviews() {    
super.viewWillLayoutSubviews()

googleBannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
googleBannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"

googleBannerView.rootViewController = self
let request: GADRequest = GADRequest()
googleBannerView.loadRequest(request)

googleBannerView.frame = CGRectMake(0, view.bounds.height - googleBannerView.frame.size.height, googleBannerView.frame.size.width, googleBannerView.frame.size.height)

self.view.addSubview(googleBannerView!)


if let skView = self.view as? SKView { //cast root as SKView
if skView.scene == nil {
//create and present gameScene
}
}
}

这是第二种方式:

在:GameScene.swift

override func didMoveToView(view: SKView) {

googleBannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)
googleBannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"

googleBannerView.rootViewController = self.view?.window?.rootViewController
let request: GADRequest = GADRequest()
googleBannerView.loadRequest(request)

googleBannerView.frame = CGRectMake(0, view.bounds.height - googleBannerView.frame.size.height, googleBannerView.frame.size.width, googleBannerView.frame.size.height)

self.view?.addSubview(googleBannerView!)

addChild(worldNode) //make whole world a node, create game nodes, in worldNode
switchToMainMenu() //go to menu menu
}

我认为唯一真正的区别是您如何设置 rootViewController,鉴于我的游戏只有 1 个 ViewController,两者都可以工作...

哪种实现方式更好?

最佳答案

您绝对应该通过 View Controller 执行此操作。从设计的角度来看,这更有意义。 GameScene 的工作是只关心游戏内容。 View Controller 的工作是管理和控制 View (因此名称为“ View Controller ”。)

关于ios - 在 SpriteKit/Swift 中显示 GADBannerView 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34395874/

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