node.js websocket+html5实现的简单联网tank大战的游戏模型

来源:互联网 发布:ubuntu 装软件 编辑:程序博客网 时间:2024/05/15 12:10
刚开始学习node.js 下载了一个node.js websocket的聊天代码,后改为一个简单的tank 大战游戏雏形,献丑了


服务端代码
可直接部署到百度bae上
var app = require('express')();var http = require('http').Server(app);var io = require('socket.io')(http);app.get('/', function(req, res){res.send('<h1>game hahaha</h1>');});//在线用户var onlineUsers = {};//当前在线人数var onlineCount = 0;//控制的主人公var players={};io.on('connection', function(socket){console.log('a user connected');//监听新用户加入socket.on('login', function(obj){//将新加入用户的唯一标识当作socket的名称,后面退出的时候会用到socket.name = obj.userid;//检查在线列表,如果不在里面就加入if(!onlineUsers.hasOwnProperty(obj.userid)) {onlineUsers[obj.userid] = obj.username;            players[obj.userid]=obj.persion;//在线人数+1onlineCount++;}//向所有客户端广播用户加入io.emit('login', {onlineUsers:onlineUsers, onlineCount:onlineCount, user:obj,players:players});console.log(obj.username+'加入了游戲');});//监听用户退出socket.on('disconnect', function(){//将退出的用户从在线列表中删除if(onlineUsers.hasOwnProperty(socket.name)) {//退出用户的信息var obj = {userid:socket.name, username:onlineUsers[socket.name]};//删除delete onlineUsers[socket.name];            delete players[socket.name];//在线人数-1onlineCount--;//向所有客户端广播用户退出io.emit('logout', {onlineUsers:onlineUsers, onlineCount:onlineCount, user:obj,players:players});console.log(obj.username+'退出了游戲');}});//监听用户发送tank信息socket.on('message', function(obj){//向所有客户端广播发布的消息        players[obj.userid]=obj.persion;io.emit('message', obj);});  });http.listen(18080, function(){console.log('游戏服务器启动 *:18080');});



这是一个简单node.js websocket 服务端 有许多不足,比如没有加上创建房间和加入房间的功能



客户端的代码如下载地址如下坦克大战客户端













0 0
原创粉丝点击