111 lines
No EOL
2.2 KiB
JavaScript
111 lines
No EOL
2.2 KiB
JavaScript
Renderer = new Render("canvas", "./assets/map/map7_recadr.png");
|
|
let Net = new Network("ws://129.151.227.50:8080/", Renderer);
|
|
//let ClientKeyboard = new Keyboard()
|
|
|
|
|
|
let playerId = null; //id of client player
|
|
let players = [];
|
|
let player = null;
|
|
|
|
Inp = new Input("canvas", Net);
|
|
|
|
playerId=Net.playerId;
|
|
player=Net.clientPlayer;
|
|
players=Net.getPlayersToAdd();
|
|
|
|
let dt = 1;
|
|
|
|
let playerToUpdate;
|
|
|
|
function update()
|
|
{
|
|
playerToUpdate = Net.getPlayersToUpdate();
|
|
for (let i = 0;i<playerToUpdate.length;i++)
|
|
{
|
|
for (let j = 0;j<players.length;j++)
|
|
{
|
|
if(players[j].id==playerToUpdate[i].id)
|
|
{
|
|
players[j].x=playerToUpdate[i].x;
|
|
players[j].y=playerToUpdate[i].y;
|
|
players[j].dir=playerToUpdate[i].dir;
|
|
players[j].visibleDir=playerToUpdate[i].visibleDir;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function addPlayers()
|
|
{
|
|
let playersToAdd = Net.getPlayersToAdd();
|
|
if (playersToAdd.length==0)
|
|
return;
|
|
|
|
playersToAdd.forEach((p) => {
|
|
console.log("New player: ",playersToAdd[0].id);
|
|
players.push(playersToAdd[0]);
|
|
Renderer.AddPlayer(p);
|
|
});
|
|
}
|
|
|
|
function remPlayers()
|
|
{
|
|
let playerToRemove = Net.getPlayersToRemove();
|
|
if(playerToRemove.length==0)
|
|
return;
|
|
for(let i=0;i<playerToRemove.length;i++)
|
|
{
|
|
let id = playerToRemove[i];
|
|
Renderer.RemPlayer(id);
|
|
console.log("deleting Player ",id);
|
|
for(let i = 0;i<players.length;i++)
|
|
{
|
|
if (players[i].id==id)
|
|
{
|
|
players.splice(i,1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
let currentTime = new Date();
|
|
function game() {
|
|
if(playerId==null)
|
|
{
|
|
if (Net.playerId!=null)
|
|
{
|
|
playerId=Net.playerId;
|
|
player=Net.clientPlayer;
|
|
players=Net.getPlayersToAdd();
|
|
//Inp.player=player; //pour connecter les input au joueur client
|
|
console.log("Connected as id ",playerId);
|
|
Inp.player=player;
|
|
Renderer.AddPlayer(player)
|
|
players.forEach((p) => {
|
|
Renderer.AddPlayer(p)
|
|
});
|
|
}
|
|
}
|
|
else
|
|
{
|
|
update();
|
|
addPlayers();
|
|
remPlayers();
|
|
player.update(squares, circles, dt);
|
|
for (var i = players.length - 1; i >= 0; i--) {
|
|
players[i].update(squares, circles, dt);//squares, circles
|
|
}
|
|
Renderer.ReloadAff();
|
|
}
|
|
|
|
let newTime = new Date();
|
|
dt=newTime - currentTime;
|
|
currentTime=newTime
|
|
}
|
|
|
|
Net.connect(); //connect to server, create a player, and retrieve all players info
|
|
|
|
|
|
setInterval(game) |