2014-02-19 5 views
1

저는 spritekit을 사용하여 게임을 만들고 있으며 iAd를 추가하기위한 코드를 추가하는 경우를 제외하고 모든 것이 완벽하게 작동합니다. iAd를 추가하면 모든 것이 작동하지만 표시 될 때 iAd가 장면의 크기를 조정하는 것으로 보입니다. Spritekit iAds 장면 크기가 엉망입니다

는 말게를 표시하려면 코드입니다, 그것은 ViewController.m에 있습니다

내가 말처럼
#import <iAd/iAd.h> 
#import "ViewController.h" 
#import "MainMenu.h" 


@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

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

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

    self.canDisplayBannerAds = YES; 

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

의 말게가 보여 제대로 모든 기능 만하여 말게가 표시 될 때 장면을 더 작게 만들거나 장면 크기를 조정할 수있는 방법이나 무언가가 있습니까?

도움을 주시면 감사하겠습니다.

답변

3

좋아요. 그래서 알아 냈습니다. SKSceneScaleModeAspectFit의 scaleMode를 사용했습니다. 이제 SKSceneScaleModeFit로 변경했습니다. 이것은 장면을 짧게 만들었지 만 aspectFit 스케일 모드만큼 눈에 띄지는 않습니다. iAd가 실제로 화면을 왜곡하거나 크기를 조정할 때 스프라이트처럼 작동하지 않는다는 것을 알았습니다. 스프라이트 같은 뷰 상단에 iAd를 만드는 방법을 아는 사람이라면 주석이나 솔루션을 추가하십시오.

난 그냥 하나의 인터페이스 빌더에서의 ViewController에 ADBannerView을 추가 할 수 있음을 알아 낸

편집,이 모든 장면에 광고가 표시됩니다. 이제는 spritekit이 하나의 viewcontroller 만 사용하는 특정 장면에 표시되지 않도록 설정할 수있는 방법을 알아 내려고하고 있습니다.

AdBannerView에서 광고를 추가하면 광고를 켜거나 끌 수있는 별도의 메소드를 만들어야합니다. 이러한 별도의 메소드를 만들어 광고를 직접 제어 할 수 있습니다. 모든 장면에서 컨트롤러를 볼 수 있습니다.

사용자가 만든 장면이있는보기 컨트롤러에서이 장면 변수/개체는 tag 또는 userdata 속성을가집니다. 게임이 다른 장면으로 이동한다면 당신은 NSTimer가 뷰 컨트롤러의 장면 태그의 값을 확인하고 그것을 제거 값 또는 재를 기반으로 내 컨트롤 메서드를 호출 할 때마다

[super scene] setTag:x] 

를 호출 할 수 있습니다 - 광고를 표시합니다.

+0

안녕하세요, 저도 같은 문제를 가지고,하지만 난 내 장면의 크기를 조정하기 위해 SKSceneScaleModeAspectFit 필요합니다. –

+0

@EndreOlah double size? 두 번째 방법 위에 내 게시물을 편집 한 장면을 변경하지 않고 나를 위해 작동합니다. – Maccle415

+0

해결책을 찾았습니다.프로그래밍 방식으로 배너보기를 만드는 대신 인터페이스 작성기에서 스토리 보드에 추가했습니다. 프리즘 모드에서 문제가 발생했다고 생각합니다. 아마 광고가 가로 모드보다 세로 모드로로드되어 장면이 엉망이되어 버린 것 같습니다. 프로그래밍 방식으로 광고를 추가하면 광고 크기가 작아졌습니다. 우현에서는 가로로보기를 설정하고 광고를 화면 상단에 배치했습니다. –

0

그냥 생각,하지만 당신은 스토리 보드 편집기를 통해에 AdBannerView을 넣어, 다음

self.canDisplayBannerAds = NO; 

단지를 축소하는 대신 SKScene 오버레이 것 그 방법을 설정할 수 있습니다.

희망이 도움이됩니다.

0

이 문제를 해결할 수있는 다른 방법이 있습니다. 이 스레드를 보길 원할 것입니다.

iAd in Spritekit

그냥 몰래 미리보기 : 그렇지 않으면 장면이 크기의 두 배,

adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
adView.delegate = self; 
[adView setFrame:CGRectMake(0, 0, 1024, 768)]; // set to your screen dimensions 
[adView setBackgroundColor:[UIColor clearColor]]; 
[self.view addSubview:adView];