2013-12-10 115 views
0

我正在尝试使用Node.js创建一个简单的游戏等等。但我有一些问题。使用Node.js的多人游戏方面

第一个玩家连接,一切都很好。然而,当第二个玩家连接时,在第一个窗口中,两个玩家都会出现。在第二个窗口中只显示播放器2。另外,如果我移动播放器2,在第二个窗口,它不会在第一个窗口

搬到这里是在服务器端:

fs.createWriteStream("/Users/thomas/Desktop/connectedPlayers.md"); 
var players; 
game.sockets.on('connection', function(socket){ 
    fs.appendFile("/Users/thomas/Desktop/connectedPlayers.md", socket.id + '\n', function(err) { 
     if(err) { 
      console.log(err); 
     } else { 
      console.log("The file was saved!"); 
     } 
    }); 

    fs.readFile("/Users/thomas/Desktop/connectedPlayers.md", function(err, file){ 
     if(err){ 
      console.log(err); 
     }else{ 
      players = file.toString().split('\n'); 
      //When a player connects, all the players will get this message. 
      game.sockets.emit('entrance', { 
        id: socket.id, 
        players: players, 
        coordinates: {x: socket.x, y: socket.y}, 
        message: 'Player ' + socket.id + ' is online' 
      }); 
     } 
    }); 
}); 

我存储所有连接的玩家文本-file,存储在一个数组,我可以在客户端访问:

socket.on('entrance', function(data){ 
     for(var i = 0; i < data.players.length; i++){ 
      new Player(data.players[i]).init(); 
     } 
     //console.log(data.message); 
     isCalled = true; 

    }); 

我真的很感激一些帮助/洞察力。谢谢!

回答

0

你需要使用广播的全部或您遍历所有连接:

socket.broadcast.emit();