一时分不清是引擎的问题,还是代码问题

这个一个联机对战游戏,一方操作后会将消息发送给MGBOE,MGBOE再发送给房间内的其他玩家,每个玩家根据消息运行逻辑,经过测试,接收消息正常,逻辑也都在执行。
因为在浏览器测试,有后台堆积消息,一起处理的问题,发现如果操作一步,切下页面,逻辑正常,但如果操作多次,消息堆积后则会出现画面不一致的问题。
以下为正常的gif


以下为堆积的gif

问题就是,逻辑代码没有报错,也是按照顺序执行的,可是场景少走了一步。
哪位大佬看看是什么问题。
需要代码我也可以发出来,反正以后是准备开源的。

忽略掉积累的消息,只处理,最后一条消息。如果消息数据不足 ,没办法同步,就在切回来的时候,重新请求一下游戏的状态,整体刷新一下。可以 加一个loading动画,遮挡一下。

因为浏览器出于后台时,是不做渲染的

你把消息多添加一个index字段,永远自增,客户端按这个值的大小依次处理

数据和渲染解耦,另外处理数据的定时器不要用cocos,正如楼上所说,渲染停止时,数据处理不应停止

接收数据的时候并没有用到定时器啊

提问发出就不管了,一周后才回来看,真溜!

不是啊,我早就看到你这个回答了,没回复你是我的问题,我道歉。
不回复是因为,你说的index我之前就已经加上了,逻辑代码也是按照消息队列执行的,像是画面渲染有错位

那我怎么知道用户把游戏切换到后台了,怎么监听到他又切回来了呢

cc.game里有两个事件可以监听游戏暂停和恢复

好的,我去看看

https://docs.cocos.com/creator/api/zh/classes/Game.html#on

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。