【发布时间】:2026-02-21 16:45:01
【问题描述】:
我读过 cocos 有一个名为 CCFollow 的方法,它可以将节点位置相应地更改为另一个节点的位置,例如“更改背景位置以跟随玩家位置”。在 SpriteKit 中有类似的东西吗?或者唯一的方法是手动或通过动作修改节点位置?
编辑
我尝试过像 moveTo 这样的动作来移动,它可以工作,但在我的游戏中,我必须移动一个大的背景图像和一些物理形状(这是我赛道的束缚)。使用 skaction 移动包含我所有游戏的节点可以工作,但它会导致 iphone4 抖动(即使使用恒定的 30 fps,它似乎也是 cpu intese 工作,几乎像 60% )。到目前为止,唯一的解决方案是简化和减少赛道尺寸,但我正在寻找其他一些解决方案......我已经阅读了关于 CCFollow 的信息,所以我认为这也许是解决我的麻烦的优化方法......
【问题讨论】:
-
尝试在每帧使用目标位置发出一个 moveTo 动作。在 cocos2d 中由于动作执行延迟而无法工作,但它可能在 SK 中工作。
-
谢谢我编辑了我的问题...
-
iPhone 4 很慢 - 考虑到它只比 iPhone 3GS 快约 33%,但必须为像素数是 4 倍的 Retina 显示屏提供服务。 30 fps 也永远不会看起来很流畅。您是否测试过,与静止时相比,只有在移动背景时帧率才会下降?
-
当我移动轨道的物理键时,帧速率会下降,如果我停用此键,则滚动是平滑的...
-
您正在移动的是一个静态(动态=NO)的身体吗?这可能会导致 CPU 使用率过高,因为内部物理引擎没有为静态物体改变其位置做好准备,从而触发了一些内部重新计算。
标签: ios iphone cocos2d-iphone sprite-kit