Merge branch 'main' of github.com:Kum1ta/PTME_Transcendence

This commit is contained in:
Kum1ta
2024-10-12 23:17:44 +02:00
5 changed files with 59 additions and 29 deletions

View File

@ -27,7 +27,7 @@ let score = {player1: 0, player2: 0};
let onUpdate = false;
let scoreElement = null;
let initialSpeed = 0;
let speed = 0;
let speed = 1;
let gameEndStatus = false;
const scoreToWin = 2; //+1 for real score to win
@ -54,16 +54,16 @@ class Map
wallTop = createWall(true);
scene.add(wallTop);
speed = 0.2;
initialSpeed = 0.2;
if (Math.random() > 0.5)
{
vec2.z = (Math.random() * 0.8 - 0.4) * speed;
vec2.x = Math.sqrt(speed * speed - vec2.z * vec2.z);
vec2.z = (Math.random() * 0.8 - 0.4) * initialSpeed;
vec2.x = Math.sqrt(initialSpeed * initialSpeed - vec2.z * vec2.z);
}
else
{
vec2.z = (Math.random() * 0.8 - 0.4) * speed;
vec2.x = Math.sqrt(speed * speed - vec2.z * vec2.z);
vec2.z = (Math.random() * 0.8 - 0.4) * initialSpeed;
vec2.x = Math.sqrt(initialSpeed * initialSpeed - vec2.z * vec2.z);
}
setTimeout(() => {
@ -98,42 +98,64 @@ class Map
if (onUpdate)
return ;
// collision wall top and bottom
if (ball.position.z > 5.7 || ball.position.z < -5.7)
vec2.z *= -1;
// collision player2 left
if (ball.position.x > 11.45 && ball.position.x < 12.2)
{
if (ball.position.z < player2.position.z + 1.25 && ball.position.z > player2.position.z - 1.25)
{
Map.scalePlayer(player2);
initialSpeed = Math.sqrt(vec2.x * vec2.x + vec2.z * vec2.z);
vec2.z -= (player2.position.z - ball.position.z) / (10 / speed) * 4;
vec2.x = -Math.sqrt(initialSpeed * initialSpeed - vec2.z * vec2.z);
vec2.x *= -1;
// Ca bug donc je le laisse en commentaire
// if (ball.position.z < player2.position.z + 0.5)
// {
// vec2.z -= 0.05;
// vec2.x += 0.05;
// }
// else if (ball.position.z > player2.position.z + 0.5)
// {
// vec2.z += 0.05;
// vec2.x -= 0.05;
// }
}
}
} // collision player1 right
else if (ball.position.x < -11.45 && ball.position.x > -12.2)
{
if (ball.position.z < player1.position.z + 1.25 && ball.position.z > player1.position.z - 1.25)
{
{
Map.scalePlayer(player1);
initialSpeed = Math.sqrt(vec2.x * vec2.x + vec2.z * vec2.z);
vec2.z -= (player1.position.z - ball.position.z) / (10 / speed) * 4;
vec2.x = Math.sqrt(initialSpeed * initialSpeed - vec2.z * vec2.z);
vec2.x *= -1;
// Ca bug donc je le laisse en commentaire
// if (ball.position.z < player1.position.z + 0.5)
// {
// vec2.z -= 0.05;
// vec2.x += 0.05;
// }
// else if (ball.position.z > player1.position.z + 0.5)
// {
// vec2.z += 0.05;
// vec2.x -= 0.05;
// }
}
}
// velocity
ball.position.x += vec2.x;
ball.position.z += vec2.z;
ball.position.x += vec2.x * speed;
ball.position.z += vec2.z * speed;
if (speed < 3)
speed += 0.005;
// ball opacity
if (ball.position.x > 12)
if (ball.position.x > 12.3)
{
ball.material.opacity -= 0.1;
if (ball.position.x > 14)
return (Map.reCreate(false));
}
else if (ball.position.x < -12)
else if (ball.position.x < -12.3)
{
ball.material.opacity -= 0.1;
if (ball.position.x < -14)
@ -184,13 +206,13 @@ class Map
setTimeout(() => {
if (player1Lose)
{
initialSpeed = Math.sqrt(vec2.x * vec2.x + vec2.z * vec2.z);
initialSpeed = 0.2;
vec2.z = (Math.random() * 0.8 - 0.4) * initialSpeed;
vec2.x = -Math.sqrt(initialSpeed * initialSpeed - vec2.z * vec2.z);
}
else
{
initialSpeed = Math.sqrt(vec2.x * vec2.x + vec2.z * vec2.z);
initialSpeed = 0.2;
vec2.z = (Math.random() * 0.8 - 0.4) * initialSpeed;
vec2.x = Math.sqrt(initialSpeed * initialSpeed - vec2.z * vec2.z);
}
@ -201,7 +223,7 @@ class Map
setTimeout(() => {
ball.material.opacity = 1;
ball.position.set(0, 0.3, 0);
initialSpeed = 0.5;
speed = 1;
scoreElement.style.animation = 'fadeOutGames 0.199s';
document.getElementsByTagName('canvas')[0].style.filter = 'brightness(1)';

View File

@ -533,9 +533,9 @@ class Map
meshProfileRightFront = new THREE.Mesh(geometryProfileRightFront, materialProfileRight);
geometryProfileLeftBack = new THREE.PlaneGeometry(width - 0.15, height - 0.15);
meshProfileLeftBack = new THREE.Mesh(geometryProfileLeftBack, materialProfileLeft);
meshProfileLeftBack = new THREE.Mesh(geometryProfileLeftBack, materialProfileRight);
geometryProfileRightBack = new THREE.PlaneGeometry(width - 0.15, height - 0.15);
meshProfileRightBack = new THREE.Mesh(geometryProfileRightBack, materialProfileRight);
meshProfileRightBack = new THREE.Mesh(geometryProfileRightBack, materialProfileLeft);
meshProfileLeftFront.position.set(-spacing - width / 2 - 0.275, 1.6, - 8.15);
meshProfileLeftFront.rotation.y = 0.4;
@ -1025,6 +1025,9 @@ class Map
reCreate(name)
{
player.resetScaleplayers();
player.reserCameraPlayer();
this.#clearAnimationGoal();
animateGoalObjectUpdate = false;
animationSpeed = 0.02;
@ -1032,8 +1035,6 @@ class Map
this.updateScore(name, this.score);
ball.resetPosBall();
this.resetPosWalls();
player.resetScaleplayers();
player.reserCameraPlayer();
};
};

View File

@ -442,6 +442,7 @@ class Player
object.scale.x -= value * 2;
}, i * 10);
}
object.scale.set(1, 1, 1);
}
configureVrController()