我想使用 node.js 和 socket.io 创建一个多人 HTML5 半实时游戏。帧速率为 3 fps。玩家使用箭头键移动。所有游戏对象都沿直线移动(玩家水平或垂直移动)。玩家按 Page Up/Down 加速/减速。这是我的第一个动画 HTML5 游戏,也是我的第一个重型 JavaScript 项目。
我完成了一个名为“使用 WebSockets 和 Node.js 创建实时多人游戏”的教程(单击此处)。本教程使用箭头键移动为每个玩家显示一个黑色方块。不幸的是,它只适用于一台计算机(但有多个浏览器选项卡)。您必须将浏览器指向 public/index.html 文件。我想修改它,以便我可以从局域网上的另一台计算机加入游戏,方法是将我的浏览器指向 192.168.1.4:8000。最终,我希望我的兄弟通过访问 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 游戏开发框架。)如果有人能指出我正确的方向,我将不胜感激。谢谢。