物体运动卡顿

  • Creator 版本: <-- 3.72 -->

  • 目标平台: <-- 构建的web-mobile包 在安卓应用里面开了个webView在跑)–>

  • 重现方式:

  • 首个报错:
    我里面的运动是这样写的
    private testBRun() {

              this.unscheduleAllCallbacks()
    
              let aNode = GameLogic.findNode("ANode", this.node)
    
              let initPos: Vec3 = v3(0, -764)
    
              let endPos = v3(0, 740)
    
              aNode.setPosition(initPos)
    
              let runBack = function () {
    
                  initPos.y += + 2
    
                  aNode.setPosition(initPos)
    
              }
    
              this.schedule(() => {
    
                  runBack()
    
              })
    
          }

演示视频

这个方法是每帧执行吗

this.schedule(() => {

            runBack()

        })

这样写的 后面没有传参数 就是每帧执行

感觉怪怪的 用tween 或者换种跟帧率无关的写法?

position = speed * time(dt);

image
我这样写过 也是卡顿

会不会是你手机卡,换台手机看下 :sweat_smile:

其他手机看起来没什么问题 但是这台红米 note 13 有问题,老板让我处理下 :sob:
这台红米是120HZ的刷新屏。
我就在想一个问题 有没有可能是 逻辑帧已经走了3-4帧 才渲染了一帧就会出现这种看起来不连贯的问题

你的帧率波动太大,可以采用楼上那位兄弟的办法
image

用tween 不至于吧,tween很可靠呀,就简单的tween(aNode).to(5, {position: endPos}).start()就可以了吧,是不是之前写复杂了

我里面写的不复杂的 就一个to运动 再就是一个打印

我使用了速度乘以时间的办法,发现里面每一帧的偏差太大了 应该是需要用插值去弄一下
image

Screenshot_2024-04-03-16-21-07-915_com.youyue.chatbar

哥哥们 有处理办法吗 上面的方法我都试过了 还是一样的有卡顿情况,上面的演示视频很清楚 有跳帧的问题

上传一个demo 给大家瞧瞧

既然是帧行为 为什么不在cocos的update生命周期里去实现, 计时器太不受控了

image
我在这里写了 也是没有用的

关键代码 就是我上发的几行移动的代码 没有其他了。

我也不确定,可以试试固定帧时间

大概是这么个意思
fixedTime