帧同步问题(可能需要以前写PC游戏的来程序员来解决)
j2me的 帧数算法的原理我的理解大致是这样:
玩家播一段打击动画, 有50帧的动作
玩家每隔20ms播放1帧, 这个20ms 是 wait(20); 达到的.
所以如果N台j2me机器同时做这个东西的时候 最终他们 播放完毕的时间却并不相等 有的早播完 有的性能差就迟播完.
这样也就造成一个问题. 如果要用 j2me 来写 CS(反恐精英) 那恐怕是不可能的事情.
你想想他的 手雷弹道同步. 玩家移动同步,子弹弹道同步.
想想都不可能.
当然,我也不是异想天开. 比如现在android也沿用j2me的这一系列帧数计算模式. 但是android上如果要做其他基于wifi的小局域网应用呢? 如果真有一个 需要帧同步的场景呢.
我从某些PC单机游戏的同步算法里了解到了一个叫什么什么时间模型的算法. 也就是不以帧数为单位.
1,比如播20帧需要x个单位的现实时间.
2,而是既定的20单位的现实时间去播10个帧
相比较1而言,2没有未知数. 也就是说10个帧 你必定要在20单位时间内播放完成.这样的话 我们大家所看见各人的屏幕大家的画面就相同了.
----------------------
具体代码就不要了(当然如果有就更好了,语言不限)
最重要的是帮我解释一下这个 [时间模型] 的算法具体怎么实现. (可以以 联机足球游戏/联机射击游戏 为例子展开对这个问题的讨论. 当然,你不需要过多考虑wifi网络传输延迟.我自己有一些办法解决这个)