Working (dé)connections
This commit is contained in:
parent
44595f0af7
commit
455cd5c25c
2 changed files with 71 additions and 40 deletions
94
js/game.js
94
js/game.js
|
@ -15,6 +15,60 @@ players=Net.getPlayersToAdd();
|
||||||
|
|
||||||
let dt = 1;
|
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();
|
let currentTime = new Date();
|
||||||
function game() {
|
function game() {
|
||||||
|
@ -31,50 +85,18 @@ function game() {
|
||||||
Renderer.AddPlayer(player)
|
Renderer.AddPlayer(player)
|
||||||
players.forEach((p) => {
|
players.forEach((p) => {
|
||||||
Renderer.AddPlayer(p)
|
Renderer.AddPlayer(p)
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
let playerToUpdate = Net.getPlayersToUpdate();
|
update();
|
||||||
for (let i = 0;i<playerToUpdate.length;i++)
|
addPlayers();
|
||||||
{
|
remPlayers();
|
||||||
for (let j = 0;j<players.length;j++)
|
|
||||||
{
|
|
||||||
if(players[j].id==playerToUpdate[i].id)
|
|
||||||
{
|
|
||||||
//console.log("updated player",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;
|
|
||||||
//console.log();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let playersToAdd = Net.getPlayersToAdd();
|
|
||||||
if (playersToAdd.length!=0)
|
|
||||||
console.log("added ",playersToAdd.length);
|
|
||||||
players.concat(playersToAdd);
|
|
||||||
let playerToRemove = Net.getPlayersToRemove();
|
|
||||||
for(let id in playerToRemove)
|
|
||||||
{
|
|
||||||
console.log("deleting ",id);
|
|
||||||
for(let i = 0;i<players.length;i++)
|
|
||||||
{
|
|
||||||
if (players[i].id==id)
|
|
||||||
{
|
|
||||||
players.splice(i,1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
player.update([],[], dt);
|
player.update([],[], dt);
|
||||||
for (var i = players.length - 1; i >= 0; i--) {
|
for (var i = players.length - 1; i >= 0; i--) {
|
||||||
players[i].update([],[], dt);//squares, circles
|
players[i].update([],[], dt);//squares, circles
|
||||||
}
|
}
|
||||||
//console.log(Inp.calculateAngle(500,500))
|
|
||||||
Renderer.ReloadAff();
|
Renderer.ReloadAff();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
17
js/render.js
17
js/render.js
|
@ -1,4 +1,8 @@
|
||||||
|
const img = new Image();
|
||||||
|
img.src = "./assets/body3.png";
|
||||||
|
|
||||||
class Render {
|
class Render {
|
||||||
|
|
||||||
constructor(id, mapsrc) {
|
constructor(id, mapsrc) {
|
||||||
this.canvas = document.getElementById(id);
|
this.canvas = document.getElementById(id);
|
||||||
this.ctx = canvas.getContext("2d");
|
this.ctx = canvas.getContext("2d");
|
||||||
|
@ -8,16 +12,21 @@ class Render {
|
||||||
}
|
}
|
||||||
|
|
||||||
AddPlayer(player) {
|
AddPlayer(player) {
|
||||||
this.players[player.id] = player;
|
this.players.push(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
RemPlayer(id) {
|
RemPlayer(id) {
|
||||||
this.players[id] = null
|
for(let i=0;i<this.players.length;i++)
|
||||||
|
{
|
||||||
|
if(this.players[i].id==id)
|
||||||
|
{
|
||||||
|
this.players.splice(i,1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderPlayer(player) {
|
RenderPlayer(player) {
|
||||||
const img = new Image();
|
|
||||||
img.src = "./assets/body3.png";
|
|
||||||
this.ctx.save();
|
this.ctx.save();
|
||||||
this.ctx.translate(player.x, player.y);
|
this.ctx.translate(player.x, player.y);
|
||||||
this.ctx.rotate(player.angle);
|
this.ctx.rotate(player.angle);
|
||||||
|
|
Loading…
Reference in a new issue