背景图片移动会偶尔轻微抖动,无法实现平滑移动效果!

近期一直被这个问题困扰,不知道该怎么解决,网上查了好多帖子都没有根本解决这个问题。
复现问题很简单,场景里创建一个精灵图片,然后调用runAction使得精灵从A点移动到B点再到A点循环执行该动作。
在移动过程中经常会看到图片轻微抖动。。。
不知道该怎么解决,希望官方大神解决该问题!
测试引擎:cocos2dx 3.15

代码有没有,不知道你是怎么实现这个移动的

lua代码片段类似这样:

    cc.SpriteFrameCache:getInstance():addSpriteFrames("aa.plist")

    local scene = cc.Director:getInstance():getScene()
    local sprite = cc.Sprite:create()
    sprite:setSpriteFrame("aa/test.png")
    scene:addChild(sprite)
    sprite:runAction(cc.RepeatForever:create(cc.Sequence:create(
        cc.MoveTo:create(5, cc.p(1000, 600)),
        cc.MoveTo:create(5, cc.p(0, 0))
    )))

单看这个代码是没有问题的啊,你确定不是其他因素导致的吗?比如后台有什么程序在运行,比如编译C++什么的,或者程序里有其他逻辑在执行?

没有的,游戏运行main函数就只执行这些脚本,其他逻辑都没有。电脑配置也很高,没有一直占用cpu的程序。

只是在你的电脑上测试过?还是在很多设备上测试过,试试在不同的环境下测试,排除是不是你电脑的问题,正常来说不应该会出现这样的问题

在我的笔记本和台式机电脑下面测试,都会有这样的问题。
排查过很多原因,一开始以为是程序的问题,程序里面某些地方性能有问题。
后来做了这个很简单的例子测试,还是会卡顿。
这个卡顿是偶尔轻微抖动,让人很难接受,严重影响用户体验。
我也很无语,网上也搜了很多相关帖子,但一直没有解决方案。

看过帧率上的变化吗?

帧频稳定60,没有变化

希望官方测试下这个问题,希望能解决。:pray:

我最近也感觉有类似的问题,简单的场景拖动,没有任何逻辑上的刷新,就是感觉不够流程,加上了平滑算法,还是有抖动,还在研究。

是的 我是在pc下遇到的这个问题,不知道安卓或ios会不会也这样。
如果你解决了,希望共享下解决方案:slightly_smiling:

这个可以在update里更新坐标的方式来移动,不用action

开始就是不用action,加了每帧自己计算位置来移动的定时器,感觉偶尔有轻微抖动不平滑,后来网上搜了很多帖子,网上说不要用定时器,定时器会有性能问题,要用action。但用了action也还是这样。

用update里面动态设置坐标,设置个横向速度,纵向速度,每次执行按这个速度变坐标就行了,不要用update里的dt参数

嗯,了解你说的意思。
每帧恒定速度或者根据dt流逝时间来动态设置位置我都试过,都没有解决偶尔卡顿的问题。
帧率和每帧流逝的时间(0.0166666666…)都稳定,可就是有偶尔卡顿的问题,我认为这已经脱离了逻辑层能解决的范畴了。

难道真的是中文论坛引擎团队关注得少吗?怎么没人回复下这个帖子呢?

抖动问题有这个长讨论贴,可以参考一下,里面有引擎团队的回复

http://forum.cocos.com/t/topic/40483

@2627993092感谢
我遇到的问题跟他们遇到的貌似不是同一个问题,我按照上面的帖子修改了精度那个地方,但是没有解决 :frowning:
这里我把例子传上去,例子很简单,就是在main函数里添加一个一直循环移动Action。

移动偶尔卡顿例子.zip (194.0 KB)

在本地上使用 3.16 引擎的 cpp-empty-test,改 HelloWorldScene.cpp 在 vs2017 编译运行,能看到边缘有轻微抖动,没看到卡顿。还没试上面帖子说的,修改精度。

修改精度的帖子 89,90楼说验证抖动问题解决 89楼传送门 ,修改地方是另外一个, 不知道你修改精度的地方,是不是正确的