我正在使用processing.js,node.js和socket.io编写多人游戏。
问题#1:
在客户端,我使用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);
}());
但我不知道这是否有帮助...
答案 0 :(得分:0)
只应在连接事件中将球传递给客户端。这就是节点的美丽所在,代码共享。
要创建套接字服务器,您可以使用节点的本机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;
});