我正在编写一个 3 x 3 视口的 javascript 网页游戏,类似于Urban Dead使用的。“世界地图”存储为 100 x 100 2D 数组服务器端(nodejs),每对坐标定义一个“房间”。因此,3 x 3 视口显示了 9 个房间的名称和内容。
用户的位置作为坐标存储在服务器端。例如Bob = { x : 2, y : 3 }
。所以 Bob 的 x 坐标是Bob.x
。客户端(浏览器)可以检索它并计算出其他 8 个房间的坐标,并向服务器询问这些房间的内容。然后将它们显示在视口中。这应该看起来像Urban Dead中的视口(左上角)。
问题
我应该如何考虑使视口“刷新”或更新?我正在考虑这样做...
1)当玩家从坐标 (2,3) 移动到 (1,3) 时。客户端再次向服务器询问 9 个房间的内容并重新绘制/显示所有内容。
2)当其中一个房间的内容发生变化时,服务器(nodejs)运行一个客户端函数,告诉它向服务器询问 9 个房间的内容并重新绘制/显示所有内容。
作为编程新手,我想知道这种实现是否过于幼稚或效率低下?