update的deltaTime为什么从0.016xxx,突然变成了0.5xxx?导致我运算瞬间变大了,然后图片瞬间位移了

然后接下来就正常了

还有为什么我父组件active=false了,子组件还有一个显示的?

这个没隐藏


它表示两个连续帧之间的时间间隔,并不是稳定一个值的,下一帧要渲染的图形复杂了,就会变大
那我怎么保证我背景匀速移动?
试试缓动系统吧
缓动系统能做到这样吗?超出屏幕重新设置位置

可以的,.call里面重置就行
用dt就是为了保证速度正确,你想要的如果是不瞬移那就不要用dt,按帧计算
怎么按帧计算?
我猜您可能是想这样?
const speed = GameManager.gameSpeed * 1.0 / 60;
const moveX = x - speed;
少在update里面写代码吗?为什么我看别人又说能在update里写就不要写定时器,也不是说毕业生代码这样,网上的教程都是在update里面实现背景滚动的。优化代码?但是我看不出来我代码有啥卡帧的,能帮忙看看吗?https://gitee.com/friend-z/bird-tunnel.git
然后突然变成0.5s不是断点问题,打包线上也是会卡这0.5,新人找不出问题了
你要说清楚你的问题啊,这个相当于要看你这整个项目代码,除非有人很闲,不然不会看的
掉帧了吧。
直接注释了看看

你都没看我上面的问题。。
1 我log了你的deltaTime,没发现什么问题。如果你想匀速运动,就不要乘deltaTime,deltaTime本身就是变化的,你可以把deltaTime改成固定值,1/60,我猜你的GameSpeed也是通过deltaTime来调过的

2 至于你说的为啥没隐藏,你gameOver绑定错了节点

1赞
解决了谢谢你
缓动一样的
不用客气的