Select Git revision
-
Rayane Belguebli authoredRayane Belguebli authored
index.js 5.96 KiB
import express from 'express';
import http from 'http';
import addWebpackMiddleware from './middlewares/addWebpackMiddleware.js';
import { Server as IOServer } from 'socket.io';
import { Avatar } from '../client/src/avatar.js';
import enemi from './enemis.js';
import { Coordinate } from '../client/src/Coordinate.js';
import timer from './timer.js';
import Bonus from './bonus.js';
import { bonusImages, bonusNoms, bonusTaille } from '../client/src/utils.js';
const app = express();
let canvasSize = new Coordinate(1920, 1261);
let canLostLifeAvatar = true;
let canLostLifeEnemi = true;
let gameStarted = false;
let t = new timer();
const httpServer = http.createServer(app);
const fileOptions = { root: process.cwd() };
addWebpackMiddleware(app);
const io = new IOServer(httpServer);
app.use(express.static('client/public'));
const port = process.env.PORT == null ? 8000 : process.env.PORT;
httpServer.listen(port, () => {
console.log(`Server running at http://localhost:${port}/`);
});
setInterval(function () {
if (gameStarted) {
t.addTime();
io.emit('timer', t.getMin(), t.getSec());
} else {
t = new timer();
}
}, 1000);
const avatars = [];
const enemis = [];
const bonusArray = [];
let cpt = 0;
let canShoot = true;
let LVL2start = false;
io.on('connection', socket => {
cpt++;
if (cpt <= 4) {
const avatar = new Avatar(`${socket.id}`, cpt);
io.emit('newAvatar', { id: cpt, x: avatar.getX(), y: avatar.getY() });
avatars.push(avatar);
socket.on('disconnect', () => {
avatars.forEach(avatar => {
if (avatar.nom == socket.id) {
console.log('taille du tableau : ' + avatars.length);
io.emit('disconnectEvent', avatar.id);
avatars.splice(avatars.indexOf(avatar), 1);
console.log('taille du tableau : ' + avatars.length);
}
});
console.log(`Déconnexion du client ${socket.id}`);
});