javascript - 2D多人游戏实时交流JavaScript

标签 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);

如果有一个函数可以完美地检测并指示玩家在另一台计算机上的任何移动。 网站空间和两个域可用于我的程序。



我非常期待您的有用答复,谢谢!!!

最佳答案

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

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

从那里您可以为您的房间和游戏的其余部分创建逻辑!它可能看起来需要学习很多东西,但说实话,它解释得很好并且很容易掌握。

关于javascript - 2D多人游戏实时交流JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38188151/

相关文章:

javascript - HTML 文本区域选项卡支持

javascript - 带有 Websocket 客户端的 WCF 全双工应用程序

java - Android Websockets onMessage() 即使在连接时也不会被调用

docker-compose yaml - 传递 'ulimit' 参数 'rtprio' 和 'memlock' 的选项

javascript - 无法使用 jQuery 将 <option> 正确添加到 <select>

javascript - 插件方法声明 - 无法使其工作

.net - 对 Microsoft WebSockets 命名空间感到困惑

python - 在实时绘图期间在 matplotlib 中移动 x Axis (python)

c++ - 在 iOS 上创建实时房间后 Google Play 游戏服务崩溃

javascript - wavesurfer.js 页面上的多个实例