如何使用NodeJS,Socket.io游戏服务器创建流畅的动画

时间:2017-01-15 05:40:56

标签: javascript node.js html5 animation socket.io

我之前制作过HTML5游戏并使用HTML5的这一功能完成了流畅的动画animate(highResTimestamp)它的效果非常好,可以制作流畅的动画效果。

但是,我只做了本地游戏。我正在制作一个在线游戏服务器并使用nodejs。我正在学习一个教程而不是使用animate(highResTimestamp)来跟踪他们所做的帧速率,nodejs经常向客户端发送信号以更新每个角色的位置。如下所示,

setInterval(function() {
    var pack = [];
    for(var i in SOCKET_LIST) {
        var socket = SOCKET_LIST[i];
        pack.push({
          x:socket.x,
          y:socket.y
        });
    }

    for(var i in SOCKET_LIST) {
        var socket = SOCKET_LIST[i];
        socket.emit('newPositions', pack);
    }
}, 1000/25);

我添加了一个检测键盘keydown的简单方法,并向服务器发送信号,说明增加x或y。然后客户端正在侦听消息newPositions,当它收到消息时,它会清除画布并在新的位置中绘制所有字符。

然而,这项工作并不顺利,这是非常前卫的感觉。有没有解决的办法?有没有更好的方法来制作nodejs游戏服务器?服务器应该控制帧速率还是应该使用animate(highResTimestamp)来控制帧速率?

0 个答案:

没有答案