-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.js
More file actions
118 lines (89 loc) · 2.45 KB
/
index.js
File metadata and controls
118 lines (89 loc) · 2.45 KB
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
117
118
const app = require('express')();
const http = require('http').createServer(app);
const io = require('socket.io')(http);
const path = require('path');
const port = process.env.PORT || 3000;
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname + '/index.html'));
});
const jogo = {
configuracoes: {
corFrutinha: '#5b865e',
tamanhoObjs: { width: 10, height: 10 }
},
jogadores: {},
// {
// jogador1: {
// cordenadas: { x: 10, y: 30 },
// pontuacao: 0,
// keyIo: 'xxyz'
// cor: yello
// }
// },
frutinhas: {
frutinha1: { x: 10, y: 50 }
}
}
io.on('connection', (client) => {
adiconarJogador(client.id);
io.emit('configuracaoes-jogo', jogo);
client.on('disconnect', function () {
removerJogador(client.id);
atualizarJogadores();
});
client.on('movimento-jogador', function (keyCode) {
let jogador = jogo.jogadores[client.id];
controle(keyCode, jogador);
pontuarJogador(jogador);
atualizarJogadores();
});
});
function gerarCordenadas() {
return Math.round(Math.random() * 499 / 10) * 10;
}
function removerJogador(idClient) {
delete jogo.jogadores[idClient];
}
function adiconarJogador(key) {
return jogo.jogadores[key] = {
cordenadas: {
x: gerarCordenadas(),
y: gerarCordenadas()
},
pontuacao: 0,
cor: 'rgba(128,128,128,0.5)',
}
}
function controle(keyCode, jogador) {
if (jogador.cordenadas.x !== 0 && keyCode === 37) {
jogador.cordenadas.x -= 10;
return;
}
if (jogador.cordenadas.y !== 0 && keyCode === 38) {
jogador.cordenadas.y -= 10;
return;
}
if (jogador.cordenadas.x !== 490 && keyCode === 39) {
jogador.cordenadas.x += 10;
return;
}
if (jogador.cordenadas.y !== 490 && keyCode === 40) {
jogador.cordenadas.y += 10;
return;
}
}
function pontuarJogador(jogador) {
if (jogador.cordenadas.x === jogo.frutinhas.frutinha1.x && jogador.cordenadas.y === jogo.frutinhas.frutinha1.y) {
jogador.pontuacao++;
console.log(jogador.pontuacao);
jogo.frutinhas.frutinha1 = {
x: gerarCordenadas(),
y: gerarCordenadas()
}
}
}
function atualizarJogadores() {
io.emit('atualizar-jogador', jogo.jogadores);
io.emit('atualizar-frutinha', jogo.frutinhas);
}
http.listen(port);