1

我正在使用 processing.js、node.js 和 socket.io 编写一个多人游戏。

问题一:

在客户端中,我使用 p5.js 创建了一个 Ball 类。我希望服务器发送参数以使用该类创建一个数组 (balls.push(new Ball(x, y));),因此每个客户端都可以在画布上移动一堆球。

我知道我应该使用 socket.io 向客户端发出参数,但我不知道。通常数组是在 p5 内部的 setup 函数中创建的……那么 socket 怎么能做到这一点呢?

问题2:

客户端如何将 mouseX 和 mouseY 发送到服务器?那么服务器如何将其他人的mouseX和mouseY发送回每个客户端?

我尝试将 p5.js 变成普通的 js,如下所示:

         (function () {
            "use strict"; 
                function sketchProc(processing) {
                   var p=processing,
                   var ...,
                   var ...;

                   function ball(){...}

                   p.setup=function(){}
                   p.draw=function(){}
                    }

             var canvas = document.getElementById("canvas1"),
                p = new Processing(canvas, sketchProc);

               }());

但我不知道这是否有帮助...

4

1 回答 1

0

球应仅在连接事件中传递给客户端。这就是节点的魅力所在,代码共享。

要创建套接字服务器,您可以使用节点的本机Net模块或Socket.io

在服务器上:

var server = net.createServer();
server.listen(PORT, HOST);
server.on('connection', function(socket) {    
    socket.write({ type: "BallsArray", data: BallsArray });
});

在客户端上,您将 WebSockets 与 Socket.io 一起使用:

var client = io.connect('http://localhost:3000');
var BallsArray = null;
client.on('message', function(msg) {
    if(msg.type == "BallsArray")
        BallsArray = msg.data; 
});
于 2013-02-06T15:23:55.087 回答