Merge branch 'dev' of https://git.etud.insa-toulouse.fr/rebillar/GrandTabernacleAutoVI into dev
This commit is contained in:
		
						commit
						162663ed34
					
				
					 7 changed files with 148 additions and 26 deletions
				
			
		
							
								
								
									
										20
									
								
								js/input.js
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								js/input.js
									
									
									
									
									
								
							|  | @ -50,31 +50,31 @@ class Input { | |||
|             return; | ||||
|         let oldDir=this.dir; | ||||
|         this.dir=0; | ||||
|         if(this.keysDown.has('z')){ | ||||
|             if(this.keysDown.has('d')){ | ||||
|         if(this.keysDown.has('z') || this.keysDown.has('arrowup')){ | ||||
|             if(this.keysDown.has('d') || this.keysDown.has('arrowright')){ | ||||
|                 this.dir = 2; | ||||
|             }else if(this.keysDown.has('s')){ | ||||
|             }else if(this.keysDown.has('s') || this.keysDown.has('arrowdown')){ | ||||
|                 this.dir = 0; | ||||
|             }else if(this.keysDown.has('q')){ | ||||
|             }else if(this.keysDown.has('q') || this.keysDown.has('arrowleft')){ | ||||
|                 this.dir = 8; | ||||
|             }else{ | ||||
|                 this.dir = 1; | ||||
|             } | ||||
|         }else if(this.keysDown.has('d')){ | ||||
|             if(this.keysDown.has('s')){ | ||||
|         }else if(this.keysDown.has('d') || this.keysDown.has('arrowright')){ | ||||
|             if(this.keysDown.has('s') || this.keysDown.has('arrowdown')){ | ||||
|                 this.dir = 4; | ||||
|             }else if(this.keysDown.has('q')){ | ||||
|             }else if(this.keysDown.has('q') || this.keysDown.has('arrowleft')){ | ||||
|                 this.dir = 0; | ||||
|             }else{ | ||||
|                 this.dir = 3; | ||||
|             } | ||||
|         }else if(this.keysDown.has('s')){ | ||||
|             if(this.keysDown.has('q')){ | ||||
|         }else if(this.keysDown.has('s') || this.keysDown.has('arrowdown')){ | ||||
|             if(this.keysDown.has('q') || this.keysDown.has('arrowLeft')){ | ||||
|                 this.dir = 6; | ||||
|             }else{ | ||||
|                 this.dir = 5; | ||||
|             } | ||||
|         }else if(this.keysDown.has('q')){ | ||||
|         }else if(this.keysDown.has('q') || this.keysDown.has('arrowleft')){ | ||||
|             this.dir = 7; | ||||
|         } | ||||
|         if(oldDir!=this.dir) | ||||
|  |  | |||
							
								
								
									
										28
									
								
								server/node_modules/.package-lock.json
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								server/node_modules/.package-lock.json
									
									
									
										generated
									
									
										vendored
									
									
								
							|  | @ -616,6 +616,11 @@ | |||
|         "node": ">= 0.10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/punycode": { | ||||
|       "version": "1.4.1", | ||||
|       "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", | ||||
|       "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" | ||||
|     }, | ||||
|     "node_modules/qs": { | ||||
|       "version": "6.11.0", | ||||
|       "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", | ||||
|  | @ -861,6 +866,29 @@ | |||
|         "node": ">= 0.8" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/url": { | ||||
|       "version": "0.11.3", | ||||
|       "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", | ||||
|       "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", | ||||
|       "dependencies": { | ||||
|         "punycode": "^1.4.1", | ||||
|         "qs": "^6.11.2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/url/node_modules/qs": { | ||||
|       "version": "6.11.2", | ||||
|       "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", | ||||
|       "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", | ||||
|       "dependencies": { | ||||
|         "side-channel": "^1.0.4" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=0.6" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "url": "https://github.com/sponsors/ljharb" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/utils-merge": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ||||
|  |  | |||
							
								
								
									
										3
									
								
								server/objects.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								server/objects.js
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| let objects = {"squares":[{"x":1162,"y":115,"w":144,"h":125},{"x":120,"y":906,"w":1228,"h":21},{"x":127,"y":0,"w":1225,"h":14},{"x":297,"y":114,"w":78,"h":93},{"x":169,"y":243,"w":62,"h":250},{"x":313,"y":243,"w":62,"h":253},{"x":228,"y":257,"w":96,"h":222},{"x":792,"y":113,"w":176,"h":126},{"x":1017,"y":113,"w":143,"h":81},{"x":1160,"y":241,"w":143,"h":-129},{"x":1065,"y":372,"w":127,"h":124},{"x":697,"y":372,"w":319,"h":126},{"x":697,"y":498,"w":159,"h":111},{"x":697,"y":628,"w":160,"h":158},{"x":1001,"y":628,"w":191,"h":158},{"x":281,"y":629,"w":175,"h":156},{"x":0,"y":0,"w":137,"h":616},{"x":0,"y":615,"w":136,"h":310},{"x":1337,"y":1,"w":130,"h":581},{"x":1337,"y":573,"w":131,"h":356},{"x":586,"y":153,"w":15,"h":24},{"x":651,"y":153,"w":12,"h":24},{"x":700,"y":187,"w":12,"h":22},{"x":1020,"y":194,"w":10,"h":47},{"x":1019,"y":227,"w":56,"h":14},{"x":1101,"y":227,"w":62,"h":13},{"x":654,"y":128,"w":105,"h":17},{"x":748,"y":129,"w":12,"h":49},{"x":748,"y":193,"w":12,"h":47},{"x":654,"y":223,"w":105,"h":16},{"x":521,"y":129,"w":106,"h":14},{"x":521,"y":140,"w":13,"h":38},{"x":521,"y":194,"w":13,"h":46},{"x":521,"y":225,"w":108,"h":16}],"circles":[{"x":552,"y":163,"r":13.601470508735444},{"x":608,"y":190,"r":20.248456731316587},{"x":569,"y":212,"r":11.704699910719626},{"x":680,"y":213,"r":12.041594578792296},{"x":727,"y":164,"r":14.212670403551895}]}; | ||||
| 
 | ||||
| exports.objects = objects | ||||
							
								
								
									
										53
									
								
								server/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										53
									
								
								server/package-lock.json
									
									
									
										generated
									
									
									
								
							|  | @ -11,6 +11,7 @@ | |||
|       "dependencies": { | ||||
|         "express": "^4.18.2", | ||||
|         "socket.io": "^4.7.2", | ||||
|         "url": "^0.11.3", | ||||
|         "ws": "^8.14.2" | ||||
|       } | ||||
|     }, | ||||
|  | @ -626,6 +627,11 @@ | |||
|         "node": ">= 0.10" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/punycode": { | ||||
|       "version": "1.4.1", | ||||
|       "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", | ||||
|       "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" | ||||
|     }, | ||||
|     "node_modules/qs": { | ||||
|       "version": "6.11.0", | ||||
|       "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", | ||||
|  | @ -871,6 +877,29 @@ | |||
|         "node": ">= 0.8" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/url": { | ||||
|       "version": "0.11.3", | ||||
|       "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", | ||||
|       "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", | ||||
|       "dependencies": { | ||||
|         "punycode": "^1.4.1", | ||||
|         "qs": "^6.11.2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/url/node_modules/qs": { | ||||
|       "version": "6.11.2", | ||||
|       "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", | ||||
|       "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", | ||||
|       "dependencies": { | ||||
|         "side-channel": "^1.0.4" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=0.6" | ||||
|       }, | ||||
|       "funding": { | ||||
|         "url": "https://github.com/sponsors/ljharb" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/utils-merge": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ||||
|  | @ -1370,6 +1399,11 @@ | |||
|         "ipaddr.js": "1.9.1" | ||||
|       } | ||||
|     }, | ||||
|     "punycode": { | ||||
|       "version": "1.4.1", | ||||
|       "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", | ||||
|       "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" | ||||
|     }, | ||||
|     "qs": { | ||||
|       "version": "6.11.0", | ||||
|       "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", | ||||
|  | @ -1551,6 +1585,25 @@ | |||
|       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", | ||||
|       "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" | ||||
|     }, | ||||
|     "url": { | ||||
|       "version": "0.11.3", | ||||
|       "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", | ||||
|       "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", | ||||
|       "requires": { | ||||
|         "punycode": "^1.4.1", | ||||
|         "qs": "^6.11.2" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "qs": { | ||||
|           "version": "6.11.2", | ||||
|           "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", | ||||
|           "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", | ||||
|           "requires": { | ||||
|             "side-channel": "^1.0.4" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "utils-merge": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ||||
|  |  | |||
|  | @ -12,6 +12,7 @@ | |||
|   "dependencies": { | ||||
|     "express": "^4.18.2", | ||||
|     "socket.io": "^4.7.2", | ||||
|     "url": "^0.11.3", | ||||
|     "ws": "^8.14.2" | ||||
|   } | ||||
| } | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| const express = require('express'); | ||||
| const http = require('http'); | ||||
| const WebSocket = require('ws'); | ||||
| const url = require('url'); | ||||
| const objectsModule = require('./objects'); | ||||
| 
 | ||||
| const app = express(); | ||||
| const server = http.createServer(app); | ||||
|  | @ -14,24 +16,57 @@ app.get('/', (req, res) => { | |||
|   res.send('Grand Tabernacle Auto VI'); | ||||
| }); | ||||
| 
 | ||||
| players.push({ | ||||
|     id: playerCount, | ||||
|     x: 100, | ||||
|     y: 100, | ||||
|     dir: 4, | ||||
|     visibleDir: 4, | ||||
|     name: playerCount.toString() + "joueur" | ||||
|   }) | ||||
| playerCount++; | ||||
| function norm(x1, x2, y1, y2){ | ||||
|   return Math.sqrt((x1-x2)**2 + (y1+y2)**2); | ||||
| } | ||||
| 
 | ||||
| function createNewPlayer(socket){ | ||||
| function circleCollide(x, y){ | ||||
|   objectsModule.objects.circles.forEach((circle)=>{ | ||||
|     if(norm(x, circle.x, y, circle.y)<=circle.radius){ | ||||
|       return true; | ||||
|     } | ||||
|   }) | ||||
|   return false; | ||||
| } | ||||
| 
 | ||||
| function squareCollide(x, y){ | ||||
|   objectsModule.objects.squares.forEach((square)=>{ | ||||
|     if(square.x <= x && x<=square.x+square.w && square.y<=y && y<=square.y+square.h){ | ||||
|       return true; | ||||
|     } | ||||
|   }) | ||||
|   return false; | ||||
| } | ||||
| 
 | ||||
| function generatePosition(){ | ||||
|   let mapWidth = 1000; | ||||
|   let mapHeight = 1000; | ||||
|   let count = 0; | ||||
| 
 | ||||
|   let x = Math.floor(Math.random()*mapWidth); | ||||
|   let y = Math.floor(Math.random()*mapHeight); | ||||
|    | ||||
|   while((circleCollide(x,y) || squareCollide(x,y))){ | ||||
|     x = Math.floor(Math.random()*mapWidth); | ||||
|     y = Math.floor(Math.random()*mapHeight); | ||||
|     count++; | ||||
|     if(count >= 1000){ | ||||
|       break; | ||||
|     } | ||||
|   } | ||||
|   return x, y; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| function createNewPlayer(socket, name){ | ||||
|   let x, y = generatePosition(); | ||||
|   var obj = { | ||||
|     id: playerCount, | ||||
|     x: Math.floor(Math.random()*1000), | ||||
|     y: Math.floor(Math.random()*1000), | ||||
|     x: x, | ||||
|     y: y, | ||||
|     dir: 0, | ||||
|     visibleDir: 0, | ||||
|     name: playerCount.toString() + "joueur" | ||||
|     name: name | ||||
|   } | ||||
|   players.push(obj); | ||||
|   playerCount++; | ||||
|  | @ -53,9 +88,11 @@ function createNewPlayer(socket){ | |||
|   connections.add(socket); | ||||
| } | ||||
| 
 | ||||
| wss.on('connection', (socket) => { | ||||
| wss.on('connection', (socket, req) => { | ||||
|   //create new player, send informations to new player and broadcast new player for all
 | ||||
|   createNewPlayer(socket); | ||||
|   let username = url.parse(req.url, true).query.name; | ||||
|   console.log(username); | ||||
|   createNewPlayer(socket, username); | ||||
| 
 | ||||
|   socket.on('message', (message) => { | ||||
|     message = JSON.parse(message); | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| const socket = new WebSocket('ws://localhost:8080'); //ws://129.151.227.50:9600
 | ||||
| const socket = new WebSocket('ws://localhost:8080?name=coucou'); //ws://129.151.227.50:9600
 | ||||
| var time = new Date(); | ||||
| socket.addEventListener('open', (event) => { | ||||
|     console.log('connecté'); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue