2017-08-02 68 views
1

即时做一个项目,这是一个网站,你可以去,找人玩,然后节点js服务器将使一个游戏,你可以一起玩的新点。我已经做了在那里当2人的连接,新的游戏将使用下面的代码所做的主机游戏的一部分:在一个节点js服务器上承载多个游戏

app.set('view engine', 'ejs'); 
app.get('/game/:id', function (req, res) 
{ 
    res.render('game', {game: req.params.id}); 
}); 

这样basicily使一个新的页面的URL /游戏/ 2,例如游戏

即时通讯的问题是在同一台服务器上运行多个游戏,我不知道在哪里或如何开始。我最近做了一个节点js的蛇游戏,其中有1个游戏,多人可以加入,但我会如何分离多个游戏?我想在服务器上有一个gamesList []列出所有当前的游戏,但每个当前游戏的逻辑去哪里?

如果任何人都可以指出我正确的方向,也许如果这是一个开源的例子,有人做了同样的事情,即使它只是一个简单的tic tac脚趾,这将是太棒了,但我找不到这样的事情。任何帮助appriciated :)

回答

0

在您的服务器上有一个对象肯定会做的伎俩。您可以创建一个app.gameLogic对象,其中ids作为键以及任何需要存储为值的信息。

我不确定我完全理解了这个问题,但我希望能够帮到你。

+0

但我的意思是,如果它是tic tac脚趾,那么会有一个函数来查看谁是赢家。这样的逻辑会在哪里,我将如何链接所有的东西?我希望有人能指点我一个例子或视频如何完成 –

+0

所以你可以做的是有一个对象,跟踪服务器上的状态。如果是tic tac脚趾,你应该有: ''' { GAME_ID:[[1,-1,0],[ - 1,0,0],[0,0,1]] } ''' 什么的。你的玩家会发送像move_position这样的信息给服务器,以及他们的颜色和他们的游戏ID。 ___ 您可以使用该信息更新服务器的游戏状态。我会写一个函数来接受当前状态和所做的动作。使用请求中的ID来确定您正在讨论的服务器上的哪个游戏并更新它。 –

+0

ohhhhh我认为这是有道理的。因此,客户端在点击时发送鼠标位置。那么对于每个游戏,检查一下该玩家所在的游戏,然后一旦获得该玩家ID。运行像placeChecker(id,x,y)这样的函数,然后执行逻辑并将输出放回到游戏对象中。这是天才,谢谢你,我现在完全理解:) –

相关问题