节点运行为什么有卡顿感

位置的计算放在update,赋值放到lateUpdate里试试

我用3.8.7,挺流畅的,几十上百个node同时跑

等我回去试试看

你这个位置更新是怎么更新的,我看都是计算方向和变形处理

也是在update里设置的
const dx = this.path.endPoint.x - this.node.position.x;
const dy = this.path.endPoint.y - this.node.position.y;
const distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
const moveDistance = this.speed; // * deltaTime;
if (moveDistance >= distance) {
this.node.setPosition(this.path.endPoint.x, this.path.endPoint.y, this.node.position.z);
} else {
const ratio = moveDistance / distance;
const newX = this.node.position.x + dx * ratio;
const newY = this.node.position.y + dy * ratio;
this.node.setPosition(newX, newY, this.node.position.z);
}
} else {
if (this.paths.length == 0) {
this.loop = false;
this.node.emit(‘reached’, this.node);
return;
}
this.path = this.paths.shift();
this._angle = 0;
}

好的,谢谢

代码方面没什么问题,我这边用了好几种移动方法,都会有抖动的情况,但将节点放大后就不会了,有可能是节点太小导致的视觉差,看着有抖动,其实没有

您这边有用过什么方式规避掉这种吗,我也把能移动方法都试了一遍,就一直感觉视觉上有抖动,就这种抖动蛮膈应人的,也改不好。

之前没注意到又这种情况,今天看到你帖子才知道的,就是不知道真机上会不会也抖动

如果真机上不会的话可以不用管

我运行后手机扫码后在手机上看也会有,就哪怕我一个节点移动也会有这种感觉,我的节点确实不大,就60*60的小图片

我碰到一个节点移动时抖动的情况是动画帧尺寸不一样,sprite.sizeMode设置为TRIMMED导致的。不知道楼主是不是这个情况。

我没用动画,就之间用的sprite图片,大小尺寸都一样,就移动的时候感觉节点被震麻了感觉。

不用客气,也没帮到你啥,不过我猜测你移动的node所绑定的图片和整个场景其它资源图片渲染存在打断,没有合批渲染导致的,建议你把资源打成plist试试,我的不卡顿,和你的区别应该就是图集的问题。

我整个移动的节点是一个图集,就是背景和按钮不在图集里

嗯,那就真搞不懂了,我的图片才20*20,的确是不抖动的,真机也不抖动

感觉要放弃这个了,这个引擎对移动有点问题,一个项目就一个移动,拿好种手机测视觉上都是有点抖动的感觉

这是一个比较玄学的问题。
1.引擎本身就有问题,而且偶现。我曾经也有过类似的问题,就一个简单的tween动画,什么都没有,就是抖。后来莫名其妙又没事了。
2.设计分辨率,当你感觉抖的时候,找到你的手机的分辨率,然后修改你的设计分辨率,一模一样再试试。
3.当你觉得抖的时候线看看自己的图片是不是像素有问题,是不是纯色的,尺寸大小是不是偶数的。
4.当你觉得抖的时候,放在onupdate里,每次x+1看还会不会抖

非常慢的时候看不出来抖,一但快一点就抖起来了,大概每秒40视觉上明显感觉就开始抖起来了

浏览器测试的时候把cpu降速6倍或者20倍,然后再看运行日志,是哪里有问题