多人游戏HTML5半
我想创建一个使用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游戏开发框架。)如果任何人都可以指出我正确的方向,我会很感激。 谢谢。
不幸的是,它只能在一台电脑上运行(但多个浏览器标签)
这强烈建议您在一台计算机上运行服务器,并且无法从其他计算机客户端(Web浏览器)访问该服务器。
你应该确保你在客户端使用的代码使用了一个可供任何试图访问游戏的人(任何客户端)访问的URL,例如
socket = io.connect("http://localhost", {port: 8000, transports: ["websocket"]});
除了运行服务器的计算机上的人以外,绝对无法工作。
如果将URL更新为192.168.1.4:8000
并且该地址可供其他人访问,则更有可能工作。
你不应该把你的浏览器指向公众,地址(取决于你路由它的位置(如果你使用表达它只是/index.html)) http://127.0.0.1:8000
(相当于localhost) http://127.0.0.1:8000/index.html
我的第一个socket.io游戏已经过半,我肯定会建议使用像nodejitsu这样的服务来部署甚至测试你的游戏
链接地址: http://www.djcxy.com/p/44735.html