简单的多人RPG - 同步

时间:2018-01-20 18:18:03

标签: javascript node.js sockets

我是网络初学者,但我正在尝试创建简单的游戏原型,其中有2个或更多玩家可以在地图上看到他们的动作。

我在服务器端使用了node + socket,在客户端使用了phaser(js游戏引擎)。

我的问题是,如果我有一个ping或者......我可以看到另一个玩家喜欢传送自己。

当玩家移动时,我将事件发送到具有玩家位置的服务器:

socket.emit('updatePosition', { position: player.position, direction: "down" });

然后在服务器上我向其他所有人广播他的位置:

socket.on('updatePosition', (data) => {
    onlinePlayers[socket.id] = data;

    socket.broadcast.emit('updatePlayers', { id: socket.id, position: onlinePlayers[socket.id].position, direction: onlinePlayers[socket.id].direction });
});

在客户端我更新他们的职位:

socket.on('updatePlayers', (data) => {

        players[data.id].position = data.position;  

});

如何消除这些传送?

0 个答案:

没有答案