Merge branch 'dev' of rebillar/GrandTabernacleAutoVI into master

This commit is contained in:
Baptiste Rebillard 2024-01-04 18:30:22 +01:00 committed by Gitea
commit 16b05e162d
12 changed files with 35 additions and 29 deletions

View file

@ -30,11 +30,11 @@ Dans le repertoire public_html/js on retrouve le code du jeu.
| ping | | Répond "pong" au websocket emetteur | | ping | | Répond "pong" au websocket emetteur |
| update | Information de son joueur(position, direction...) | Broadcast aux autres joueurs | | update | Information de son joueur(position, direction...) | Broadcast aux autres joueurs |
| newBullet | Info d'une nouvelle balle (position, direction...)| Broadcast aux autres joueurs | | newBullet | Info d'une nouvelle balle (position, direction...)| Broadcast aux autres joueurs |
| died | Identifiant du Killeur et du killé | Broadcast aux autres joueurs | | died | Identifiant du Killeur et du killé | Broadcast aux autres joueurs + update du joueur tué |
| message | Message envoyé via concorde | Broadcast aux autres joueurs | | message | Message envoyé via concorde | Broadcast aux autres joueurs |
* le ping est une commande de débug. * le ping est une commande de débug.
* update est émis à chaque modification de direction ou a chaque tp. Le serveur emet de lui même un update dès qu'un joueur meurt afin de faire respawn le joueur(en vrai il se fait juste TP au moment ou il meurt). * update est émis à chaque modification de direction, à chaque tp ou prise de dégats. Le serveur emet de lui même un update dès qu'un joueur meurt afin de faire respawn le joueur(en vrai il se fait juste TP au moment ou il meurt).
* newBullet est émis a chaque fois que quelqu'un tire. * newBullet est émis a chaque fois que quelqu'un tire.
* died est émis par un joueur lorsqu'il meurt (côté client chacun check s'il a des collisions avec les balles et dès qu'il n'a plus de vie emet un "died"). * died est émis par un joueur lorsqu'il meurt (côté client chacun check s'il a des collisions avec les balles et dès qu'il n'a plus de vie emet un "died").
* message est fait pour broadcast des messages dans le chat in game (via l'application "Concord" accessible via le téléphone (press "P")) * message est fait pour broadcast des messages dans le chat in game (via l'application "Concord" accessible via le téléphone (press "P"))

View file

@ -24,7 +24,7 @@
<main> <main>
<div class="box"> <div class="box">
<p id="about"> Ce site a été fait par RODRIGUEZ Leandro, LASSERRE Victor, Marty Killian , et REBILLARD Baptiste.</p> <p id="about"> Ce site a été fait par RODRIGUEZ Leandro, LASSERRE Victor, Marty Killian , et REBILLARD Baptiste.</p>
<p id="about"> Ce jeu a été fait dans le cadre de la formation de L'INSA Toulouse option IR.</p> <p id="about"> Ce jeu a été créé dans le cadre de la formation de L'INSA Toulouse option IR.</p>
</div> </div>
</main> </main>

Binary file not shown.

Binary file not shown.

View file

@ -47,6 +47,8 @@ class Player
} }
}); });
dieSound.play();
net.died(this.id,killerId); net.died(this.id,killerId);
} }
} }

View file

@ -1,10 +1,16 @@
function getCookie(name) { function getCookie(name) {
nom = name + "="; let lookingFor = name + "=";
var liste = document.cookie.split (';'); let arr = document.cookie.split(";");
for (var i = 0; i < liste.length; i++) { for(let str of arr)
var c = liste[i]; {
while (c.charAt(0) == ' ') c = c.substring(1, c.length); while(str[0] == ' ') // removing potential unwanted spaces
if (c.indexOf(nom) == 0) return c.substring(nom.length, c.length); {
str = str.slice(1);
}
if (str.slice(0,lookingFor.length)==lookingFor)
{
return str.slice(lookingFor.length);
}
} }
return null; return null;
} }

View file

@ -4,6 +4,7 @@ let renderer = new Render("canvas");
let LB = new LeaderBoard("canvas"); let LB = new LeaderBoard("canvas");
let bulletSound = new Sound("./assets/sounds/shoot.mp3"); let bulletSound = new Sound("./assets/sounds/shoot.mp3");
let driftSound = new Sound("./assets/sounds/drift.mp3"); let driftSound = new Sound("./assets/sounds/drift.mp3");
let dieSound = new Sound("./assets/sounds/die.mp3");
let notificationSound = new Sound("./assets/sounds/notification.mp3"); let notificationSound = new Sound("./assets/sounds/notification.mp3");
let net = new Network("wss://ws.gta6.insat.fr:8080?name=" + getCookie("pseudo")); let net = new Network("wss://ws.gta6.insat.fr:8080?name=" + getCookie("pseudo"));
let inp = new Input("canvas"); let inp = new Input("canvas");

View file

@ -124,7 +124,7 @@ class Phone{
clearMessages(){ clearMessages(){
let messages = document.getElementsByClassName("message"); let messages = document.getElementsByClassName("message");
for (var i = messages.length - 1; i >= 0; i--) { for (let i = messages.length - 1; i >= 0; i--) {
messages[i].remove(); messages[i].remove();
} }
} }

View file

@ -1,3 +0,0 @@
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

View file

@ -48,7 +48,7 @@ function getUsername(req){
function createNewPlayer(socket, name) { function createNewPlayer(socket, name) {
let pos = generatePosition(); let pos = generatePosition();
var obj = { let obj = {
id: playerCount, id: playerCount,
x: pos[0], x: pos[0],
y: pos[1], y: pos[1],
@ -91,7 +91,7 @@ function kick_player(player_id, socket, reason){
} }
function update(message, socket){ function update(message, socket){
for (var i = players.length - 1; i >= 0; i--) { for (let i = players.length - 1; i >= 0; i--) {
if(message.data.health <= MAX_HEALTH) { if(message.data.health <= MAX_HEALTH) {
if (players[i].id == message.data.id) { if (players[i].id == message.data.id) {
players[i] = message.data; players[i] = message.data;
@ -110,7 +110,7 @@ function newBullet(message, socket){
function died(message, socket){ function died(message, socket){
broadcast(JSON.stringify(message), socket.id); broadcast(JSON.stringify(message), socket.id);
for (var i = players.length - 1; i >= 0; i--) { for (let i = players.length - 1; i >= 0; i--) {
if (players[i].id == message.data.id) { if (players[i].id == message.data.id) {
let pos = generatePosition(); let pos = generatePosition();
@ -127,7 +127,7 @@ function died(message, socket){
} }
function deletePlayer(socket){ function deletePlayer(socket){
for (var i = players.length - 1; i >= 0; i--) { for (let i = players.length - 1; i >= 0; i--) {
broadcast(JSON.stringify({ broadcast(JSON.stringify({
type: "removePlayer", type: "removePlayer",
data: { data: {

View file

@ -1,5 +1,5 @@
const socket = new WebSocket('ws://localhost:8080?name=coucou'); //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(); let time = new Date();
socket.addEventListener('open', (event) => { socket.addEventListener('open', (event) => {
console.log('connecté'); console.log('connecté');
}); });

View file

@ -1,26 +1,26 @@
var ctx = document.getElementById("canvas").getContext("2d"); let ctx = document.getElementById("canvas").getContext("2d");
var cv = document.getElementById("canvas"); let cv = document.getElementById("canvas");
const fond = new Image(); const fond = new Image();
fond.src = "../../public_html/assets/map/map11.jpg"; fond.src = "../../public_html/assets/map/map11.jpg";
var mapWidth = fond.width let mapWidth = fond.width
var mapHeith = fond.height let mapHeith = fond.height
ctx.canvas.width = mapWidth ctx.canvas.width = mapWidth
ctx.canvas.height = mapHeith ctx.canvas.height = mapHeith
ctx.drawImage(fond, 0, 0, mapWidth, mapHeith); ctx.drawImage(fond, 0, 0, mapWidth, mapHeith);
var mode = "circle" let mode = "circle"
var data = { let data = {
squares: [], squares: [],
circles: [] circles: []
} }
var start = [] let start = []
var stop = [] let stop = []
var w = [] let w = []
cv.addEventListener("mousedown", (e)=>{ cv.addEventListener("mousedown", (e)=>{
const rect = canvas.getBoundingClientRect(); const rect = canvas.getBoundingClientRect();
@ -42,7 +42,7 @@ cv.addEventListener("mouseup", (e)=>{
ctx.fillStyle = "#FF0000" ctx.fillStyle = "#FF0000"
ctx.fillRect(start[0], start[1], w[0], w[1]); ctx.fillRect(start[0], start[1], w[0], w[1]);
}else if(mode=='circle'){ }else if(mode=='circle'){
var radius = Math.sqrt(w[0]**2 + w[1]**2); let radius = Math.sqrt(w[0]**2 + w[1]**2);
data.circles.push({ data.circles.push({
x: start[0], x: start[0],
y:start[1], y:start[1],
@ -66,7 +66,7 @@ function rectMode(){
} }
function download(filename, text) { function download(filename, text) {
var element = document.createElement('a'); let element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename); element.setAttribute('download', filename);