Использую phaser+nodejs+socketio+matterjs.
На сервере запускаю такой код:
t=setInterval(function(){
Matter.Engine.update(engine, engine.timing.delta);
},1000/60)
socket.on("getBlock",function(){
socket.emit("sendBlock",boxA.position)// положение какого-то блока.
});
На клиенте такой:
//phaser
function create(){
player = this.add.sprite(300,100, 'circle');
socket.on("sendBlock",function(blockPos){
player.x=blockPos.x;
player.y=blockPos.y;
});
}
function update(){
socket.emit("getBlock");
}
На сервере запускается интервал, где идет обработка физики движком. Потом игрок через сокеты делает запрос и получает данные и отображает действия в игре. Правильно ли я реализовал систему передачи данных? Или должно быть как-то по другому?
Когда я делал наоборот, чтобы сервер отправлял данные без запроса игрока, у клиента появлялись подтормаживания