何时在多人游戏循环中发送数据包?
问题描述:
我编程我的第一个多人游戏循环而现在我的循环包括:何时在多人游戏循环中发送数据包?
- 逻辑
- 过程键盘输入
- 过程鼠标输入
- 画
在什么循环中的点是否最好将数据包发送到服务器?
我目前的游戏循环:
while (!key[KEY_ESC]) {
while (speed_counter > 0) {
update();
keyboard();
mouse();
speed_counter--;
}
if(game_time - old_time >= 10) {
fps = frames_done;
frames_done = 0;
old_time = game_time;
}
draw();
frames_done++;
}
答
你想收到后输入(在这种情况下,键盘和鼠标),这样所有的移动可以在同一时间进行更新,以发送数据包。如果我正确理解您的问题,您需要步骤3.5,类似于update other players
+0
我将我的代码添加到我的问题中,我将在哪里发送代码中的数据包? – rmaes4 2012-07-10 02:53:07
+1
发送数据包的最佳时机是在您准备好要包含数据的数据之后。你不能更快地发送它们,因为你不知道要发送什么,而且以后你不会再发送它们,因为在发送数据之前你坚持数据的时间越长,越多的时间会通过在其他玩家可以看到更新的数据之前。 – 2012-07-10 03:24:19
上面显示的代码在外部while循环的第一次迭代后是否停止处理鼠标和键盘信息?它看起来像speed_counter会减少到零,然后永远保持为零,因此内部while循环将不会再次输入。 – 2012-07-10 03:25:10
@JeremyFriesner我正在使用计时器来增加speed_counter。 – rmaes4 2012-07-10 03:48:31