分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

nodejs 打造 多人对战游戏服务器(初级入门)

发布时间:2023-09-06 01:12责任编辑:董明明关键词:jsnodejs

使用socket.set 和 socket.get 在存取玩家信息

百牛信息技术bainiu.ltd整理发布于博客园

socket.get(‘playerinfo‘, function (err, player) { ???????????if(player == null) { ???????????????console.log("[new player]",data.name); ???????????????var player = new Player(socket, data); ???????????} ???????????else ???????????{ ????????????????console.log("[wait player visit again]",data.name); ???????????????socket.emit(‘error‘, "you have registered"); ???????????????return ; ???????????} ???????????socket.set(‘playerinfo‘, player, function () { ???????????usersWS.push(player); ???????????console.log("[wait player numer]",usersWS.length);//这在里如果玩家状态和数量满足要求就可以开始游戏了 ?????????????Physic.CreatePhysicWorld(p1, p2);//通知client 启动 游戏 ????????………….. ????????}); //set ???}); //get}) ???//socket.on

转发 和处理 玩家的输入

 socket.on(‘sync‘, function (data) { ???socket.get(‘playerinfo‘, function (err, player) { ???????????if(player != null) { ???????????????//var target = usersWS[i].socket; ???????????????var room = player.room; ???????????????for(var i=0;i<room.players.length;i++) ???????????????{ ??????????????????????if(room.players[i].id ==player.id) ????????????????????????{ ???????????????????????//console.log("this is msg from id:",room.players[i].id) ????????????????????????} ???????????????????????else ???????????????????????{ ???????????????????????room.players[i].socket.emit(‘sync‘, data); ???????????????????????//console.log("send to id:",room.players[i].id) ???????????????????????} ???????????????????????//room.players[i].socket.emit(‘sync‘, data); ???????????????} ???????????}//if ??????????else ??????????{ ???????????socket.emit(‘error‘,"no session"); ??????????} ????????}); //get ???}); //socket.on

}); //Network.on

定义一个简单的玩家对象

function Player(socket, data){var newplayer = { ???socket: socket, ???id: player_next_id++, ???tankType: 0, ???name: data.name, ???isMain: data.isMain, ???ip: socket.remoteAddress, ???status: ‘未准备‘,

// isAI: false, room: null }; newplayer.proto = Player.prototype; return newplayer; }

定义一个游戏房间对象

function Room(title){var newroom = { ???id: room_next_id++, ???is_in_game: false, ???????????// 判断改房间的游戏是否已经开始 ???players: [], ???map: 0, ???title: title, ???game: null};room_list.push(newroom);newroom.__proto__ = Room.prototype;return newroom;

}

最后感言: 本人是新手,发篇文章互动一下实属不易。不周之处,还望高手轻点儿拍砖。

nodejs 打造 多人对战游戏服务器(初级入门)

原文地址:http://www.cnblogs.com/bainiu/p/7541454.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved