精灵横幅的精灵套件表现

时间:2014-08-22 18:46:56

标签: performance sprite-kit lag frame-rate adbannerview

在过去的一个月里,我在App Store的第一个应用程序上取得了巨大的进步。这是一个简单的2D精灵套件游戏。 然而,随着即将发布,我在iPhone 4上的表现正在挣扎。

我的游戏通常一次显示大约20个节点,而其中一些有物理机构。没有多少接触发生,大多数只是运动。

最近,我已将iAd和AdMob横幅支持添加到我的项目中。横幅既设置又有效。我的游戏尝试显示iAd(如果可用)并使用AdMob作为后备。

现在我已经购买了开发者会员资格,并且最终可以在实际设备上测试应用程序,我在iPhone 4上体验了很多帧丢失和低fps .iPhone 5和iPhone 4S似乎工作正常但iPhone 4的平均值约为40fps,下降到15/20 fps。 我还测试了没有广告的游戏,这大大提高了帧率并减少了滞后,但它们仍然存在于iPhone 4上。

每当呈现游戏场景时,我都会启动iAd和AdMob横幅并让他们请求横幅广告。如果iAd成功,则显示一个,如果没有,AdMob的横幅将移动到可见区域。这就是他们的发起方式:

    iADBanner = [[MyIADBannerView alloc] initWithAdType:ADAdTypeBanner origin:CGPointMake(0, -CGSizeFromGADAdSize(kGADAdSizeBanner).height)];
    iADBanner.delegate = self;
    [iADBanner moveToOrigin];
    [self.view addSubview:iADBanner];

    [GADBanner moveToOrigin];
    GADBanner = [[MyGADBannerView alloc] initWithAdSize:kGADAdSizeBanner origin:CGPointMake(0, -CGSizeFromGADAdSize(kGADAdSizeBanner).height)];
    GADBanner.rootViewController = self;
    GADBanner.delegate = self;
    [GADBanner moveToOrigin];
    GADRequest* request = [GADRequest request];
    request.testDevices = [NSArray arrayWithObjects:GAD_SIMULATOR_ID, @"device_id", nil];  
    [GADBanner loadRequest:request];
    [self.view addSubview:GADBanner];

我真的不知道是什么导致了滞后,但我感到很失望,因为一个简单的2D游戏有大约20个节点不应该有任何性能问题,即使在iPhone 4上,它应该吗?

也许你可以就如何优化我的SpriteKit代码给我一些建议。

提前致谢

1 个答案:

答案 0 :(得分:0)

他们中的大多数人都有一些SKActions(仅限运动),而只有少数人拥有PhysicsBodies并执行物理学的东西...... 一旦他们离开屏幕,节点就会从其父节点中删除。

我想我会先继续我的项目,然后再考虑一段时间后的性能改进。 但是,我还想学习的是,是否应该总是使用一些技术来提高一般性能?