我正在使用 Canvas 和 MySQL 数据库在 PHP 中开发多人游戏。两名玩家加入游戏,他们首先获得对手的位置(X,Y 和角度)。
当他们准备好时,游戏开始。游戏算法是这样的。
每 50 毫秒
- 计算自己的位置 (X,Y)
- 获取对手的角度(AJAX)并计算对手的位置(X2,Y2)
然后在 Canvas 上绘制并更新数据库。
context.fillStyle = "green"; context.fillRect(p1.x,p1.y, 5,5); addPoints(p1.x,p1.y); updateRoundJQ(p1.x,p1.y,p1.a); context.fillStyle = "red"; context.fillRect(x2,y2, 5,5); addPoints(x2,y2); loopTimer = setTimeout('drawLine()', 50);
但不幸的是,我得到了这个结果。接收数据有很大延迟。谁能帮助我如何摆脱这个巨大的错误?真的会很感激。
玩家 1 的屏幕
玩家 2 的画面