我正在使用processing.js、node.js和socket.io.编写一款多人游戏
问题1:
在客户端中,我使用p5.js创建一个类Ball。我希望服务器发送参数来使用该类创建数组(Ball.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);
}());
但我不知道这是否有帮助。。。
球应该只在连接事件中传递给客户端。这就是节点的美妙之处,代码共享。
要创建套接字服务器,可以使用节点的本地Net模块或socket.io
在服务器上:
var server = net.createServer();
server.listen(PORT, HOST);
server.on('connection', function(socket) {
socket.write({ type: "BallsArray", data: BallsArray });
});
在客户端上,您使用带有Socket.io:的WebSockets
var client = io.connect('http://localhost:3000');
var BallsArray = null;
client.on('message', function(msg) {
if(msg.type == "BallsArray")
BallsArray = msg.data;
});