2D多人游戏实时通信JavaScript

时间:2016-07-04 15:28:09

标签: javascript websocket real-time 2d-games enchantjs

我正在使用JavaScript和HTML编写多人游戏。为了这个目标,我需要玩家之间的沟通。我该怎么办呢?

我的代码:

    enchant();
    window.onload = function() {
    var game = new Game(320, 320);

这里是我的第一个问题:应该计算出现在有多少玩家,最后进入房间的玩家。然后应该为该播放器分配一个数字。我想用一个函数解决这个问题。

    var my_bear = get_player_number();

    game.preload('chara1.gif');
    game.fps=15;
    var bears = [];
    game.onload = function() {
        var ix;
        var bear;
        for (ix = 0; ix < 5; ix++) {
            bear=new Sprite(32, 32);
            bear.image = game.assets['chara1.gif'];
            bear.frame = 4;
            bear.x=Math.random()*300;
            bear.y=Math.random()*300;
            game.rootScene.addChild(bear);
            bears.push(bear);
        }
    };
    game.start();
    var addit=6;
    document.addEventListener('keyup',function (evt) {
        if(evt.keyCode == 38){bears[my_bear-1].y-=addit;}
        if(evt.keyCode == 39){bears[my_bear-1].x+=addit;}
        if(evt.keyCode == 40){bears[my_bear-1].y+=addit;}
        if(evt.keyCode == 37){bears[my_bear-1].x-=addit;}
    });
}

由于我的程序简化,你有5只熊。其中一个你可以使用箭头键控制(带有变量“my_bear”值的熊)。

但它仍然是单人游戏......

init_other_players(my_bear);

一个功能将是完美的,它可以检测并指示玩家在另一台计算机上的任何移动。 网站空间有两个域可用于我的程序。



我非常期待您的回复,谢谢!

1 个答案:

答案 0 :(得分:1)

首先,如果你想要多人游戏,你需要一些东西来管理房间等,所以你需要一台服务器。对于游戏,我建议NodeJS。 Node是一个用JS构建的服务器应用程序,因此是您熟悉的语言。你现在不需要对节点了解太多,只需在你的代码上进行运行它就足够了,之后我会说你应该多看一点。

之后,我会查看Socket.io,它可以让您管理您的websockets,从而管理用户和服务器之间的通信。网站的“入门”部分提供了有关聊天的教程,您可以通过该部分了解用户之间的通信基础知识。

从那里,您可以为您的房间和游戏的其余部分创建逻辑!它可能看起来很多东西,但是,很幸运的是,它得到了很好的解释并且很容易掌握。