使用Node.js的多人游戏方面
multiplayer aspect using 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'
});
}
});
});
我将所有连接的播放器存储到一个文本文件中,并将其存储在一个数组中,我可以在客户端访问该数组:
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;
});
我真的很感激你的帮助/见解。谢谢
您需要对所有连接使用广播,或者在所有连接上循环:
socket.broadcast.emit();
相关文章:
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 如何有效地将游戏数据存储在URL查询字符串中
- Javascript游戏输入失去焦点
- 如何在p5.js中管理多智力竞赛游戏的多个屏幕
- setInterval游戏循环的范围问题
- 如何在服务、技能、投资组合等方面添加滑动效果
- 为网络游戏制作动画
- 重置游戏和获胜者问题
- 帆布游戏的滞后运动
- Javascript单独的游戏窗口
- Typescript在语法方面与es6/es7有多大不同
- Javascript猜测游戏-计数器不工作
- JavaScript纸牌游戏
- 简单游戏的画布与SVG
- 我的HTML5游戏不时暂停,我如何才能知道它是否's是由垃圾收集引起的
- 多人游戏完全在浏览器中运行,服务器仅用于数据库
- 通过PHP将单词添加到游戏中
- 2D Processingjs游戏中的冲突
- Javascript岩石,纸,剪刀游戏
- 使用Node.js的多人游戏方面