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