iAd减少FPS?

时间:2014-06-27 11:00:18

标签: cocos2d-iphone iad frame-rate

iAd横幅是否会降低FPS?

确实,因为我添加了iAd,我的FSP很糟糕。所有比赛都是59,现在它的变化是35-50 FPS。

任何想法,因为我的游戏几乎无法用这个横幅播放。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您应该在UINavigationController中设置的appDelegate子类中实现iAd逻辑。在我的代码中它看起来像:

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Create the main window
    window_ = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    CCGLView *glView = [CCGLView viewWithFrame:[window_ bounds]
                                   pixelFormat:kEAGLColorFormatRGB565
                                   depthFormat:0
                            preserveBackbuffer:NO
                                    sharegroup:nil
                                 multiSampling:NO
                               numberOfSamples:0];

    // Enable multiple touches
    [glView setMultipleTouchEnabled:YES];

    director_ = (CCDirectorIOS*) [CCDirector sharedDirector];

    director_.wantsFullScreenLayout = YES;

    // Display FSP and SPF
    [director_ setDisplayStats:YES];

    // set FPS at 60
    [director_ setAnimationInterval:1.0/60];

//FEW LINES LATER

    // Create a Navigation Controller with the Director
    navController_ = [[MyNavigationController alloc] initWithRootViewController:director_];
    navController_.navigationBarHidden = YES;

    [self checkDeviceType];

    // setup iAds bannerView
    [self setupIADs];

    // for rotation and other messages
    [director_ setDelegate:navController_];

    // set the Navigation Controller as the root view controller
    [window_ setRootViewController:navController_];

    // make main window visible
    [window_ makeKeyAndVisible];

    return YES;
}

- (void)setupIADs {
    CGSize size = [[CCDirector sharedDirector] winSize];

    float bannerHeight = _isiPadRunning ? 66.0f : 50.0f;
    ADAdType bannerType = _isiPadRunning ? ADAdTypeMediumRectangle : ADAdTypeBanner;
    _bannerView = [[ADBannerView alloc] initWithAdType:bannerType];
    _bannerView.frame = CGRectMake(0, navController_.view.frame.size.height, size.width, bannerHeight);

    CGSize newBannerSize = [_bannerView sizeThatFits:CGSizeMake(size.width, bannerHeight)];
    _bannerView.frame = CGRectMake(0, navController_.view.frame.size.height,
                                   newBannerSize.width, newBannerSize.height);
    _bannerView.delegate = self;

    //get view
    UIView *mainView = [navController_ view];
    [mainView addSubview:_bannerView];
    [mainView setNeedsLayout];
}

如您所见,我使用navController_放置iAd横幅视图。没有FPS下降! :) 请试一试。对我来说它有所帮助,我没有FPS下降或延迟。一切都很好。