我的游戏通常一次显示大约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代码给我一些建议。
提前致谢
答案 0 :(得分:0)
他们中的大多数人都有一些SKActions(仅限运动),而只有少数人拥有PhysicsBodies并执行物理学的东西...... 一旦他们离开屏幕,节点就会从其父节点中删除。
我想我会先继续我的项目,然后再考虑一段时间后的性能改进。 但是,我还想学习的是,是否应该总是使用一些技术来提高一般性能?