1

node.js と socket.io を使用してマルチプレイヤー HTML5 セミリアルタイム ゲームを作成したいと考えています。フレームレートは3fps。プレイヤーは矢印キーを使用して移動します。すべてのゲーム オブジェクトは直線で移動します (プレイヤーは水平または垂直に移動します)。プレイヤーは Page Up/Down を押して加速/減速します。これは私の最初のアニメーション化された HTML5 ゲームであり、最初の負荷の高い JavaScript プロジェクトです。

「Creating a real-time multiplayer game with WebSockets and Node.js」(ここをクリック) というチュートリアルを実行しまし。このチュートリアルでは、矢印キーの動きで各プレーヤーに黒い四角が表示されます。残念ながら、1 台のコンピューターでしか機能しません (ただし、複数のブラウザー タブ)。ブラウザで public/index.html ファイルを指定する必要があります。ブラウザで 192.168.1.4:8000 を指定して、LAN 上の他のコンピュータからゲームに参加できるように変更したいと思います。最終的には、myquadrawebsite.com にアクセスして弟に参加してもらいたいと思っています。Apache のポート フォワーディングの方法は知っていますが、node.js は知りません。チュートリアルの要約された高レベル コードの 3 つのスニペットを次に示します。

// public/index.html
        <script src="http://localhost:8000/socket.io/socket.io.js"></script>
        <script src="js/game.js"></script>
        <script> // Initialise the game
            init();
            animate();
        </script>
// game.js
    var io = require("socket.io");
    var socket, players;
    function init() {
        players = [];
        socket = io.listen(8000);
        setEventHandlers();
    };
    var setEventHandlers = function() {
        socket.sockets.on("connection", onSocketConnection);
    };
    function onSocketConnection(client) {
        util.log("New player has connected: "+client.id);
        client.on("new player", onNewPlayer);
    };
// public/js/game.js
    var remotePlayers, localPlayer, socket;
    function init() {
        localPlayer = new Player(startX, startY);
        socket = io.connect("http://localhost", {port: 8000, transports: ["websocket"]});
        remotePlayers = [];
        setEventHandlers();
    };
    var setEventHandlers = function() {
        socket.on("connect", onSocketConnected);
        socket.on("new player", onNewPlayer);
    };

node.js と socket.io に関する他のチュートリアルを高低で検索しましたが、これまでのところどれも役に立ちませんでした。(私の長期的な目標は、HTML5 ゲーム開発フレームワークを作成することです。) 誰かが私を正しい方向に向けることができれば、感謝します。ありがとう。

4

2 に答える 2