gpt4 book ai didi

iphone - sprite 套件游戏中的 iAd

转载 作者:太空狗 更新时间:2023-10-30 03:41:32 25 4
gpt4 key购买 nike

我知道至少有一个问题询问如何将 iAd 集成到 sprite kit 游戏中,但这不是我要找的。我正在寻找如何做的纵向版本。关于如何执行此操作的在线教程似乎绝对为 0,所以我来到了这里。有人可以告诉我如何在 Sprite Kit 游戏中简单地启用 iAd 吗?我启用了 canDisplayBannerAds 并为我的 UIView 使用了 originalContentView 属性,但我一直遇到崩溃,提示说

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[ViewController originalContentView]:无法识别的选择器发送到实例 0x10a0a7410”

任何帮助将不胜感激,这是我在 View Controller 中的代码

- (void)viewWillLayoutSubviews 
{
[super viewWillLayoutSubviews];

// Configure the view.
SKView * skView = (SKView *)self.originalContentView;
//skView.showsFPS = YES;
//skView.showsNodeCount = YES;

// Create and configure the scene.
SKScene * scene = [MyScene sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;

self.canDisplayBannerAds = YES;

// Present the scene.
[skView presentScene:scene];
}

最佳答案

对于那些不理解的人,以及那些供将来引用的人,以下是我对我的 Sprite Kit 游戏的处理方式。

我在 Xcode 中使用 SpriteKit 模板创建了我的游戏项目,然后进入项目设置:

enter image description here

在“Link Binary With Libraries”部分,确保点击 + 按钮,并添加 iAd 框架。

完成之后,转到 Sprite Kit 游戏的 View Controller ,然后输入:

// at the top 
#import <iAd/iAd.h>

// do this in .m, above @implementation
@interface YourViewControllerClassName ()
@property (nonatomic, strong) ADBannerView *banner;
@end

// after the implementation line
// if you're needing to do it horizontally, do:
- (void) viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];

self.banner = [[ADBannerView alloc] initWithFrame:CGRectZero];
self.banner.delegate = self;
[self.banner sizeToFit];
self.canDisplayBannerAds = YES;

SKView *view = (SKView *)self.originalContentView;
SKScene *scene = [[YourScene alloc] initWithSize:CGSizeMake(self.view.frame.size.width, self.view.frame.size.height)];

[view presentScene:scene];
}

如果您只是以正常的纵向方式执行 iAd,则可以执行上述代码,但您也可以只使用 - (void) viewDidLoad...

现在是 iAd 出现的委托(delegate)方法...

转到@implementation 行上方的代码,并对其进行编辑

// do this in .m, above @implementation
@interface YourViewControllerClassName () <ADBannerViewDelegate>
@property (nonatomic, strong) ADBannerView *banner;
@end

现在,在执行行下,输入:

// NOTE: THIS CODE CAME FROM APPLE MOSTLY
// I DID EDIT IT, BUT THE CREDIT GOES TO APPLE'S DOCUMENTATION
// ON IAD
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
if (banner.isBannerLoaded) {
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
// Assumes the banner view is placed at the bottom of the screen.
banner.frame = CGRectOffset(banner.frame, 0, banner.frame.size.height);
[UIView commitAnimations];
}
}

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
if (!banner.isBannerLoaded) {
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];
// Assumes the banner view is just off the bottom of the screen.
banner.frame = CGRectOffset(banner.frame, 0, -banner.frame.size.height);
[UIView commitAnimations];
}
}

这就是 iAd 在 SpriteKit 游戏中实际工作所需的全部内容。我希望我能帮助那些将要阅读本文的人。

关于iphone - sprite 套件游戏中的 iAd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21669567/

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