ios – Sprite Kit低性能,在一个位置具有多个节点

ios – Sprite Kit低性能,在一个位置具有多个节点,第1张

概述我已经设置了一个包含200个精灵节点的场景,并将它们随机放置在屏幕上,如下所示: for(int i = 0; i < bubbleCount; i++) { CGSize size = [self getRandomSize]; SKSpriteNode *bubble = [SKSpriteNode spriteNodeWithTexture:texture size:size 我已经设置了一个包含200个精灵节点的场景,并将它们随机放置在屏幕上,如下所示:
for(int i = 0; i < bubbleCount; i++) {    CGSize size = [self getRandomSize];    SKSpriteNode *bubble = [SKSpriteNode spriteNodeWithTexture:texture size:size];    bubble.anchorPoint = CGPointMake(0.5,0.5);    bubble.position = [self getRandomposition];    bubble.name = BUBBLE;    SKPhysicsBody *physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:size.wIDth/2];    physicsBody.dynamic = YES;    physicsBody.affectedByGravity = NO;    physicsBody.allowsRotation = NO;    physicsBody.categoryBitMask =  0;    physicsBody.contactTestBitMask = 0;    physicsBody.collisionBitMask = 0;    bubble.physicsBody = physicsBody;    [self addChild:bubble];}

只要节点彼此保持距离,我就可以稳定60 fps.当我施加力使节点开始向场景中心移动并相互重叠时,性能会急剧下降到2-3 fps.我猜这与碰撞检测有关,而不是渲染(如果我用更大的半径初始化物理体,开始时性能非常低).我已将类别,接触和碰撞掩码设置为0,但它没有帮助.

解决方法 你最好的选择可能是预先渲染这个场景,而不是强迫iPhone通过200个碰撞检测体,这无疑会造成压力. 总结

以上是内存溢出为你收集整理的ios – Sprite Kit低性能,在一个位置具有多个节点全部内容,希望文章能够帮你解决ios – Sprite Kit低性能,在一个位置具有多个节点所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1099778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存