-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
117 lines (98 loc) · 3.8 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
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/******************************************************************************/
/* */
/* */
/* Socket Server */
/* */
/* */
/******************************************************************************/
var express = require('express');
var app = express.createServer()
var io = require('socket.io').listen(app);
io.set('log level', 1);
/*app.listen(process.env['app_port'] || 3000);*/
app.listen(8000);
app.use("/js", express.static(__dirname + '/js'));
app.use("/css", express.static(__dirname + '/css'));
app.use("/imgs", express.static(__dirname + '/imgs'));
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
/******************************************************************************/
/* Connection Handles */
/******************************************************************************/
var stage_width = 500;
var stage_height = 500;
var tunnel_size = 100;
var tunnel = createTunnel();
io.sockets.on('connection', function (socket) {
switch (io.sockets.clients('game').length) {
case 0:
console.log("----- GAME IS EMPTY WAITING FOR PLAYERS -----");
socket.join('game');
io.sockets.socket(io.sockets.clients('game')[0]['id']).emit('create_tunnel', { x : tunnel.startx, y : tunnel.starty, pos : tunnel.startpos });
break;
case 1:
console.log("----- GAME HAS ONE PLAYER WE CAN START NOW -----");
socket.join('game');
io.sockets.socket(io.sockets.clients('game')[0]['id']).emit('create_ball', { x : 10, y : 10 });
io.sockets.socket(io.sockets.clients('game')[1]['id']).emit('create_tunnel', { x : tunnel.endx, y : tunnel.endy, pos : tunnel.endpos });
break;
case 2:
console.log("---- GAME IS FULL ----");
break;
}
socket.on('tunnel_ball', function(data) {
console.log("BALL ENTERED TUNNEL IN", socket.id);
io.sockets.socket(socket.id).emit('destroy_ball',{});
socket.broadcast.emit('create_ball', { x : 10, y : 10});
});
// Handles Disconnection
socket.on('disconnect', function() {
socket.leave('room');
});
});
/******************************************************************************/
/* Element Creation */
/******************************************************************************/
function createTunnel() {
//var pos = ["T","R","B","L"];
var pos = ["L"];
var x_start, x_end, y_start, y_send, pos_start, pos_end;
var randomPos = pos[Math.floor(Math.random()*pos.length)];
switch(randomPos) {
case "T":
x_start = Math.floor(Math.random()*(stage_width-tunnel_size));
y_start = 0;
pos_start = "T";
x_end = x_start;
y_end = stage_height - tunnel_size
pos_end = "B";
break;
case "R":
x_start = stage_width-tunnel_size;
y_start = Math.floor(Math.random()*(stage_height-tunnel_size));
pos_start = "R";
x_end = 0;
y_end = y_start;
pos_end = "L";
break;
case "B":
x_start = Math.floor(Math.random()*(stage_width-tunnel_size));
y_start = stage_height - tunnel_size;
pos_start = "B";
x_end = x_start;
y_end = 0;
pos_end = "T";
break;
case "L":
x_start = 0;
y_start = Math.floor(Math.random()*(stage_width-tunnel_size));
pos_start = "L";
x_end = stage_width - tunnel_size;
y_end = y_start;
pos_end = "R";
break;
}
return { startx: stage_width - tunnel_size, endx: 0, starty : 0, endy : 0, startpos : "R", endpos : "L"};
//return { startx: x_start, endx: x_end, starty : y_start, endy : y_end, startpos : pos_start, endpos : pos_end }
}