1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| var express = require('express');
var app = express();
var serv = require('http').Server(app);
serv.listen(1337);
console.log("Lancement ok");
var SOCKET_LIST = {};
var PLAYER_LIST = {};
var Player = function(id){
var self = {
x:250,
y:250,
id:id,
number:"" + Math.floor(10 * Math.random()),
pressingRight:false,
pressingLeft:false,
pressingUp:false,
pressingDown:false,
maxSpd:10,
map:'dortoire',
}
self.updatePosition = function(){
if(self.pressingRight)
self.x += self.maxSpd;
if(self.pressingLeft)
self.x -= self.maxSpd;
if(self.pressingUp)
self.y -= self.maxSpd;
if(self.pressingDown)
self.y += self.maxSpd;
}
initPack.player.push({
id:self.id,
x:self.x,
y:self.y,
number:self.number,
});
return self;
}
var io = require('socket.io')(serv,{});
Player.list = {};
io.sockets.on('connection', function(socket){
socket.emit('loginok');
socket.id = Math.random();
SOCKET_LIST[socket.id] = socket;
var player = Player(socket.id);
PLAYER_LIST[socket.id] = player;
socket.on('disconnect',function(){
delete SOCKET_LIST[socket.id];
delete PLAYER_LIST[socket.id];
removePack.player.push(player.id);
});
socket.on('keyPress',function(data){
if(data.inputId === 'left')
player.pressingLeft = data.state;
else if(data.inputId === 'right')
player.pressingRight = data.state;
else if(data.inputId === 'up')
player.pressingUp = data.state;
else if(data.inputId === 'down')
player.pressingDown = data.state;
console.log(data.state);
});
});
Player.update = function(){
var pack = [];
for(var i in Player.list){
var player = Player.list[i];
player.update();
pack.push({
id:player.id,
x:player.x,
y:player.y,
});
}
return pack;
}
var initPack = {player:[]};
var removePack = {player:[]};
setInterval(function(){
var pack = {
player:Player.update(),
}
for(var i in SOCKET_LIST){
var socket = SOCKET_LIST[i];
socket.emit('init', initPack);
socket.emit('update',pack);
socket.emit('remove', removePack);
}
initPack.player = [];
removePack.player = [];
},1000/25); |
Partager