-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
70 lines (58 loc) · 2.17 KB
/
server.js
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
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
var server = app.listen(port, function(){
console.log('Our app is running on http://localhost:' + port);
});
var io = require('socket.io')(server);
app.get('/', function(req, res){
res.sendfile('public/game.html');
});
//app.use('/', express.static('public'));
app.use(express.static(__dirname + '/public'));
var players = {};
var updatedPositions = {};
io.on('connection', function(socket){
//console.log('new user: ' + socket.id);
socket.on('createPlayer', function(player) {
//var player = new PlayerModule.Player(socket.id, playerInfo[0], false, Math.random()*3000, Math.random()*1500, '#'+Math.floor(Math.random()*16777215).toString(16), playerInfo[1]);
player.id = socket.id;
player.x = 48;
player.y = 258;
player.isMoving = false;
player.n = socket.id;
players[socket.id] = player;
socket.emit('init', players[socket.id]);
socket.emit('allplayers', players);
io.sockets.emit('newPlayer', players[socket.id]);
});
socket.on('disconnect', function(){
//console.log('user disconnected: ' + socket.id);
delete players[socket.id];
io.sockets.emit('playerQuit', socket.id);
});
socket.on('currentPosition', function(player){
//console.log(player.id + ": " + player.x + " " + player.y);
if(players[socket.id] != undefined) {
players[socket.id].x = player.x;
players[socket.id].y = player.y;
players[socket.id].isMoving = player.isMoving;
updatedPositions[socket.id] = {x: player.x, y: player.y, m:player.isMoving};
}
});
socket.on('message', function(message) {
io.sockets.emit('message', {id:socket.id, m:message});
})
});
var prevTime = (new Date()).getTime();
function gameloop() {
/*var currentTime = (new Date()).getTime();
var dt = currentTime - prevTime;
prevTime = currentTime;
*/
//console.log("updating: " + JSON.stringify(updatedPositions));
io.sockets.emit('updatePositions', updatedPositions);
updatedPositions = {};
setTimeout(gameloop, 1000/20);
}
gameloop();