leaderboard
This commit is contained in:
		
							parent
							
								
									57383829de
								
							
						
					
					
						commit
						52905c76a3
					
				
					 5 changed files with 80 additions and 5 deletions
				
			
		|  | @ -1,3 +1,4 @@ | ||||||
|  | <!DOCTYPE HTML> | ||||||
| <html> | <html> | ||||||
|     <head> |     <head> | ||||||
|         <script type="text/javascript" src="./js/class.js"></script> |         <script type="text/javascript" src="./js/class.js"></script> | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ const playerSize = 50.; | ||||||
| const playerSpeed=.2; | const playerSpeed=.2; | ||||||
| const bulletSpeed=playerSpeed*2; | const bulletSpeed=playerSpeed*2; | ||||||
| const halfSqrtTwo=0.70710678118; | const halfSqrtTwo=0.70710678118; | ||||||
|  | 
 | ||||||
| class Player | class Player | ||||||
| { | { | ||||||
|     constructor (id,x,y,name, dir) |     constructor (id,x,y,name, dir) | ||||||
|  | @ -24,6 +25,8 @@ class Player | ||||||
|                    //8=North-West
 |                    //8=North-West
 | ||||||
|         this.ammo=10; |         this.ammo=10; | ||||||
|         this.health=10; |         this.health=10; | ||||||
|  |         this.kill=0; | ||||||
|  |         this.death=0; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     takeDamage(amount) |     takeDamage(amount) | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								js/game.js
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								js/game.js
									
									
									
									
									
								
							|  | @ -10,6 +10,7 @@ function CookiePseudo() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Renderer = new Render("canvas", "./assets/map/map7_recadr.png"); | Renderer = new Render("canvas", "./assets/map/map7_recadr.png"); | ||||||
|  | LB = new LeaderBoard("canvas"); | ||||||
| let Net = new Network("ws://129.151.227.50:8080?name="+CookiePseudo(), Renderer); | let Net = new Network("ws://129.151.227.50:8080?name="+CookiePseudo(), Renderer); | ||||||
| //let ClientKeyboard = new Keyboard()
 | //let ClientKeyboard = new Keyboard()
 | ||||||
| 
 | 
 | ||||||
|  | @ -122,6 +123,7 @@ function game() { | ||||||
| 			players.forEach((p) => { | 			players.forEach((p) => { | ||||||
| 				Renderer.AddPlayer(p) | 				Renderer.AddPlayer(p) | ||||||
| 			}); | 			}); | ||||||
|  | 			LB.ReloadAff(players, player); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	else | 	else | ||||||
|  | @ -131,11 +133,13 @@ function game() { | ||||||
| 		remPlayers(); | 		remPlayers(); | ||||||
| 		addBullets(); | 		addBullets(); | ||||||
| 		player.update(squares, circles, dt); | 		player.update(squares, circles, dt); | ||||||
| 		for (var i = players.length - 1; i >= 0; i--) { | 
 | ||||||
| 			players[i].update(squares, circles, dt); | 		players.forEach((p) => { | ||||||
| 		} | 			p.update(squares, circles, dt); | ||||||
|  | 		}); | ||||||
| 		Renderer.ReloadAff(); | 		Renderer.ReloadAff(); | ||||||
| 		updateBullets(dt); | 		updateBullets(dt); | ||||||
|  | 		LB.ReloadAff(players, player); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	let newTime = new Date(); | 	let newTime = new Date(); | ||||||
|  |  | ||||||
|  | @ -0,0 +1,65 @@ | ||||||
|  | class LeaderBoard { | ||||||
|  | 	constructor(id) { | ||||||
|  | 		this.canvas = document.getElementById(id); | ||||||
|  | 		this.ctx = this.canvas.getContext("2d"); | ||||||
|  | 		this.nbjoueur=0 | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	ReloadAff(players, player) { | ||||||
|  | 		this.px=10 | ||||||
|  | 		this.py=10 | ||||||
|  | 		this.players=[] | ||||||
|  | 		players.forEach((p) => { | ||||||
|  | 			if(p != null) { | ||||||
|  | 				this.players.push(p) | ||||||
|  | 			} | ||||||
|  | 		}) | ||||||
|  | 		this.players.push(player); | ||||||
|  | 
 | ||||||
|  | 	    // Dessiner le tableau du leaderboard
 | ||||||
|  | 	    this.ctx.fillStyle = 'rgba(255, 255, 255, 0.7)'; // Couleur de fond du tableau
 | ||||||
|  | 	    this.ctx.fillRect(this.px, this.py, this.px+240, this.py+100+this.nbjoueur*20); // Position et dimensions du tableau
 | ||||||
|  | 	    this.nbjoueur=0 | ||||||
|  | 	    // Dessiner le texte du leaderboard
 | ||||||
|  | 	    this.ctx.font = '20px Arial'; | ||||||
|  | 	    this.ctx.fillStyle = '#000000'; | ||||||
|  | 	    this.ctx.fillText('Leaderboard', this.px+80, this.py+30); | ||||||
|  | 
 | ||||||
|  | 	    // Dessiner les lignes du tableau
 | ||||||
|  | 	    this.ctx.strokeStyle = '#000000'; | ||||||
|  | 	    this.ctx.lineWidth = 2; | ||||||
|  | 	    this.ctx.beginPath(); | ||||||
|  | 	    this.ctx.moveTo(this.px, this.py+50); | ||||||
|  | 	    this.ctx.lineTo(this.px+250, this.py+50); | ||||||
|  | 	    this.ctx.moveTo(this.px, this.py+100); | ||||||
|  | 	    this.ctx.lineTo(this.px+250, this.py+100); | ||||||
|  | 	    this.ctx.stroke(); | ||||||
|  | 
 | ||||||
|  | 	    // Dessiner les données du leaderboard (exemple)
 | ||||||
|  | 	    this.ctx.fillStyle = '#000000'; | ||||||
|  | 	    this.ctx.font = '15px Arial'; | ||||||
|  | 	    this.ctx.fillText('#', this.px+20, this.py+80); | ||||||
|  | 	    this.ctx.fillText('Username', this.px+50, this.py+80); | ||||||
|  | 	    this.ctx.fillText('K/D', this.px+180, this.py+80); | ||||||
|  | 	    this.ctx.font = '10px Arial'; | ||||||
|  | 
 | ||||||
|  | 	    this.players.forEach((p) => { | ||||||
|  | 			if(p != null) { | ||||||
|  | 				this.ctx.fillText('1', this.px+20, this.py+120+20*this.nbjoueur); | ||||||
|  | 	    		this.ctx.fillText(p.name, this.px+50, this.py+120+20*this.nbjoueur); | ||||||
|  | 	    		this.ctx.fillText('10/20', this.px+180, this.py+120+20*this.nbjoueur); | ||||||
|  | 
 | ||||||
|  | 				this.nbjoueur++ | ||||||
|  | 			} | ||||||
|  | 		}); | ||||||
|  | 
 | ||||||
|  | 	    /*this.ctx.fillText('1', this.px+20, this.py+120); | ||||||
|  | 	    this.ctx.fillText('Player1', this.px+50, this.py+120); | ||||||
|  | 	    this.ctx.fillText('10/20', this.px+180, this.py+120); | ||||||
|  | 
 | ||||||
|  | 	    this.ctx.fillText('2', this.px+20, this.py+120+20); | ||||||
|  | 	    this.ctx.fillText('Player2', this.px+50, this.py+120+20); | ||||||
|  | 	    this.ctx.fillText('10/2', this.px+180, this.py+120+20); | ||||||
|  | 		*/ | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | @ -22,9 +22,11 @@ class Render { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	remBullet(bullet) { | 	remBullet(bullet) { | ||||||
| 		for(let i=0;i<this.bullets.length;i++) | 		for(let i=0;i<this.bullets.length;i++) { | ||||||
| 			if(bullet==this.bullets[i]) | 			if(bullet==this.bullets[i]) { | ||||||
| 				this.bullets.splice(i,1); | 				this.bullets.splice(i,1); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	RemPlayer(id) { | 	RemPlayer(id) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue