2017-03-04 9 views
1

これは、swiftとsprite-kitを使ってアプリを開発する初めてのことです。私はそれにadMobを統合したいと思います。私は私の問題の解決策を探してきましたが、私は成功しませんでした。スプライトキットの特定のシーンで広告を表示するには?

私はこのセットアップは完全に私のシーンの全ての広告を表示するが、私の質問はどのように私はそれがMainMenuScene.swiftGameOverScene.swiftによってに表示させることができるであろう、あるGameViewController.swift

override func viewDidLoad() { 
    super.viewDidLoad() 

    bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait) 
    bannerView.isHidden = true 
    bannerView.adUnitID = "ca-app-pub-************************" 
    bannerView.rootViewController = self 
    view.addSubview(bannerView) 

    // Configure the view. 
    let skView = self.view as! SKView 
    skView.showsFPS = false 
    skView.showsNodeCount = false 

    /* Sprite Kit applies additional optimizations to improve rendering performance */ 
    skView.ignoresSiblingOrder = true 

    // Create and configure the scene. 
    let aspectRatio = skView.bounds.size.height/skView.bounds.size.width 
    let scene = MainMenuScene(size:CGSize(width: 320, height: 320 * aspectRatio)) 
    skView.presentScene(scene) 

    showBanner() 

} 

func showBanner() { 
    bannerView.isHidden = false 
    let request = GADRequest() 
    request.testDevices = ["******************"] 
    bannerView.load(request) 

} 

の内側に設定し、次のコードを持っていますNotificationCenterを使用していますか?どちらも独自のクラスです。

+0

MenuScene.swift何であるのに役立ちますか? –

+0

@ElTomatoクラスです。 MainMenuSceneクラス:MainMenuScene:SKScene {} – sicvayne

+0

MainMenuScene広告MenuSceneの関係はわかりませんが、兄弟姉妹の場合は、ベースSKSceneクラスを作成してサブクラス化できるようにすることができます広告を表示するかどうかを示すブールスイッチ。 –

答えて

1

上記のとおり、通知センターを使用することができます。

タイプミスを防ぐために通知用のキーを作成します。あなたは(のviewDidLoad

NotificationCenter.default.addObserver(self, selector: #selector(showBanner), name: .showBannerAd, object: nil) // selector is the method to call 

にし、あなたのSKSceneにオブザーバーを追加し、あなたのGameViewControllerよりも

extension Notification.Name { 
    static let showBannerAd = Notification.Name(rawValue: "ShowBanner") 
} 

(任意のクラスまたは新規.swiftファイル外)プロジェクトで好きなどこにでもこれを置くことができ、S )あなたはバナーを表示する必要があるときに通知を投稿することができます。

NotificationCenter.default.postNotificationName(.showBannerAd, object: nil) 

また、Githubには、これをはるかに簡単でクリーンにするヘルパーがあります。

https://github.com/crashoverride777/SwiftyAds

希望これは

+0

返事をありがとうが、私はすでにそれを理解していた。私は実際にこれに似た何かをして、それは魅力のように動作します。私は先に進み、他の誰かが同じ問題を抱えている場合に備えてこの質問を残しておきます。 – sicvayne

+0

ありがとう。ハッピーコーディング – crashoverride777

関連する問題