0

我正在尝试使用 socket.io 创建一个小型 POF,其想法是每个连接的玩家都会获得一个球,并且可以将其拖放到浏览器视图中;然后其他连接的人可以看到它在移动,也可以移动他们自己的。

目前,该应用程序只有一个球,每个玩家都可以控制它,代码如下:

var express = require('express');
var app = express();

var server = app.listen(80);
var io = require('socket.io').listen(server);

var posx = 10;
var posy = 10;

app.configure(function() {
    app.use(express.static(__dirname + '/public'));
});

io.sockets.on('connection', function (socket) {
    socket.emit('start', {
        x: posx,
        y: posy
    });

    socket.on('newpos', function (data) {
        posx = data["x"];
        posy = data["y"];
        socket.broadcast.emit('move', { x: posx, y: posy });
    });
});

我将如何获得更多的球并且每个球员都控制自己的球?我在想以下几点:

让 Express 处理存储在 Redis 哈希中的会话,其中包含会话 ID 和球位置的坐标。这适用于当新玩家连接时,放置物品,然后将每个动作广播给所有人(但发送者)。但我确信缺少一些东西。

粗略地说,我应该朝哪个方向看?

提前致谢。

4

1 回答 1

0

如果您移动posxposyconnection回调内部,每个玩家(又名新连接)在服务器上都有自己的球坐标。因此,您在connection回调中所做的一切仅对连接的播放器有效。这应该会让你朝着正确的方向前进。:)

顺便说一句:什么是POF

于 2012-08-14T12:52:42.610 回答