如何让各客户端保持同步呢?
时间:2010-12-31
来源:互联网
最近在做一个塔防对战的游戏,在各客户端,相同的怪物在同一时刻从左边出发,按照相同的帧频相同的速度(Event.ENTER_FRAME)走向右边,结果我发现,在不同的机器上的各客户端怪物行走所用的时间不同,有的机器上怪物已经走到右边了,但有的机器上的怪物距离右边还差好一段距离,时间上有时能相差好几秒,请问大家这种问题怎么解决呀?看了一下各机器上的CPU使用情况都是很低的,也就是说并不是CPU导至的慢吧
作者: haoxue 发布时间: 2010-12-31
让服务器发出每走一步的指令?
或者是定期同步一下?
或者是定期同步一下?
作者: flash023 发布时间: 2010-12-31
呵呵。有意思。這個問題讓我想到星際爭霸在網速卡的時候有的人在等待讀秒。有的人卡在那段情況
總的來說。在服務端會有一個計時器進程。
如果每單位時間向8個用戶分派更新的內容。而單位時間內8個用戶並沒有全部回調。
也就是有人速度慢跟不上。這個時候服務器就掛起了這個定時器等待卡住的用戶返回後再繼續。
所以enterFrame不應該使用。
星際2有一個所謂的遊戲時間,基本構成和計時器一樣的,就是有一套自己的刷新時間機制。
客戶端的更新應該跟這個同步。有的時候玩遊戲卡一下。突然裡面的角色像快動作一樣跑很遠。
也是因為這個。當一個刷新慢的客戶端更新服務器的狀態發現計數比服務器慢很多的時候需要更新好幾個時間戳導致。
總的來說。在服務端會有一個計時器進程。
如果每單位時間向8個用戶分派更新的內容。而單位時間內8個用戶並沒有全部回調。
也就是有人速度慢跟不上。這個時候服務器就掛起了這個定時器等待卡住的用戶返回後再繼續。
所以enterFrame不應該使用。
星際2有一個所謂的遊戲時間,基本構成和計時器一樣的,就是有一套自己的刷新時間機制。
客戶端的更新應該跟這個同步。有的時候玩遊戲卡一下。突然裡面的角色像快動作一樣跑很遠。
也是因為這個。當一個刷新慢的客戶端更新服務器的狀態發現計數比服務器慢很多的時候需要更新好幾個時間戳導致。
作者: enc0717 发布时间: 2010-12-31
这样说的话,服务器向客户端发送计时指令的时间单位为多少比较好呢,每秒发送一次,还是每1/25秒?
作者: haoxue 发布时间: 2010-12-31
以前做过一个类似东东,心跳设置 根据服务器的情况来
我觉得每秒2、3 次差不多吧
我觉得每秒2、3 次差不多吧
作者: flash023 发布时间: 2010-12-31
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28