Game
- add action 8 for jumper
This commit is contained in:
@ -6,7 +6,7 @@
|
|||||||
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/08/20 17:02:47 by edbernar #+# #+# */
|
/* Created: 2024/08/20 17:02:47 by edbernar #+# #+# */
|
||||||
/* Updated: 2024/09/22 17:49:04 by edbernar ### ########.fr */
|
/* Updated: 2024/09/25 13:47:32 by edbernar ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ class Ball
|
|||||||
this.object.position.set(x, y, z);
|
this.object.position.set(x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
changeGravity(ballIsOnJumper)
|
changeGravity()
|
||||||
{
|
{
|
||||||
let diffTop = this.limits.up - this.object.position.y;
|
let diffTop = this.limits.up - this.object.position.y;
|
||||||
let diffBot = this.object.position.y - this.limits.down;
|
let diffBot = this.object.position.y - this.limits.down;
|
||||||
@ -93,40 +93,11 @@ class Ball
|
|||||||
this.setPosition(this.object.position.x, this.limits.up, this.object.position.z);
|
this.setPosition(this.object.position.x, this.limits.up, this.object.position.z);
|
||||||
else
|
else
|
||||||
this.setPosition(this.object.position.x, this.limits.down, this.object.position.z);
|
this.setPosition(this.object.position.x, this.limits.down, this.object.position.z);
|
||||||
ballIsOnJumper.can = true;
|
|
||||||
}
|
}
|
||||||
speed -= speed * slower;
|
speed -= speed * slower;
|
||||||
}, 10);
|
}, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---------------- FUNCTION FOR TEST ----------------*/
|
|
||||||
initMoveBallTmp()
|
|
||||||
{
|
|
||||||
console.warn("Don't forget to remove function initMoveBallTmp");
|
|
||||||
const speedBallTmp = 0.1;
|
|
||||||
let warn = false;
|
|
||||||
|
|
||||||
document.addEventListener('keypress', (e) => {
|
|
||||||
if (!this.object && !warn)
|
|
||||||
{
|
|
||||||
console.warn("EventListener in initMoveBallTmp() is still here");
|
|
||||||
warn = true;
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
if (e.key == '4')
|
|
||||||
this.object.position.x -= speedBallTmp;
|
|
||||||
if (e.key == '6')
|
|
||||||
this.object.position.x += speedBallTmp;
|
|
||||||
if (e.key == '8')
|
|
||||||
this.object.position.z -= speedBallTmp;
|
|
||||||
if (e.key == '2')
|
|
||||||
this.object.position.z += speedBallTmp;
|
|
||||||
if (e.key == '9')
|
|
||||||
this.changeGravity();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------*/
|
|
||||||
|
|
||||||
updatePos(content)
|
updatePos(content)
|
||||||
{
|
{
|
||||||
// {action: 5, pos: [ball.object.position.x, ball.object.position.z], velocity: [ball.object.velocity.x, ball.object.velocity.z]}
|
// {action: 5, pos: [ball.object.position.x, ball.object.position.z], velocity: [ball.object.velocity.x, ball.object.velocity.z]}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/08/20 14:52:55 by hubourge #+# #+# */
|
/* Created: 2024/08/20 14:52:55 by hubourge #+# #+# */
|
||||||
/* Updated: 2024/09/23 13:44:57 by edbernar ### ########.fr */
|
/* Updated: 2024/09/25 13:58:28 by edbernar ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -79,9 +79,6 @@ class Map
|
|||||||
left: -3,
|
left: -3,
|
||||||
right: 3,
|
right: 3,
|
||||||
};
|
};
|
||||||
ballIsOnJumper = {
|
|
||||||
can: true
|
|
||||||
};
|
|
||||||
|
|
||||||
dispose()
|
dispose()
|
||||||
{
|
{
|
||||||
@ -831,7 +828,6 @@ class Map
|
|||||||
listObject = listObject.content;
|
listObject = listObject.content;
|
||||||
for (let i = 0; i < listObject.length; i++ )
|
for (let i = 0; i < listObject.length; i++ )
|
||||||
{
|
{
|
||||||
console.log(listObject[i]);
|
|
||||||
if (listObject[i].type == 1)
|
if (listObject[i].type == 1)
|
||||||
{
|
{
|
||||||
this.#createGravityChanger(listObject[i].pos.x, listObject[i].pos.y, listObject[i].pos.z, "gravityChanger" + i, listObject[i].isUp ? "jumperTop" : "jumperBottom", listObject[i].isUp);
|
this.#createGravityChanger(listObject[i].pos.x, listObject[i].pos.y, listObject[i].pos.z, "gravityChanger" + i, listObject[i].isUp ? "jumperTop" : "jumperBottom", listObject[i].isUp);
|
||||||
@ -842,6 +838,16 @@ class Map
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
activeJumper(index)
|
||||||
|
{
|
||||||
|
ball.changeGravity();
|
||||||
|
if (listObject[index].isUp)
|
||||||
|
this.#animationGravityChanger(this.arrObject[index].mesh, true);
|
||||||
|
else
|
||||||
|
this.#animationGravityChanger(this.arrObject[index].mesh, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#generateObstacle()
|
#generateObstacle()
|
||||||
{
|
{
|
||||||
const wallPos = [
|
const wallPos = [
|
||||||
@ -916,18 +922,6 @@ class Map
|
|||||||
}
|
}
|
||||||
if (this.arrObject[i].type == 'jumperBottom')
|
if (this.arrObject[i].type == 'jumperBottom')
|
||||||
{
|
{
|
||||||
const cylinder = this.arrObject[i].mesh.children[5];
|
|
||||||
const distance = ball.object.position.distanceTo(cylinder.position);
|
|
||||||
const speed = 0.1;
|
|
||||||
|
|
||||||
// Detect if the ball is on the jumper
|
|
||||||
if (distance < 0.25 && this.ballIsOnJumper.can)
|
|
||||||
{
|
|
||||||
this.ballIsOnJumper.can = false;
|
|
||||||
ball.changeGravity(this.ballIsOnJumper);
|
|
||||||
this.#animationGravityChanger(this.arrObject[i].mesh, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gravity changer animation
|
// Gravity changer animation
|
||||||
for (let j = 0; j < 3; j++)
|
for (let j = 0; j < 3; j++)
|
||||||
{
|
{
|
||||||
@ -937,18 +931,6 @@ class Map
|
|||||||
}
|
}
|
||||||
else if (this.arrObject[i].type == 'jumperTop')
|
else if (this.arrObject[i].type == 'jumperTop')
|
||||||
{
|
{
|
||||||
const cylinder = this.arrObject[i].mesh.children[5];
|
|
||||||
const distance = ball.object.position.distanceTo(cylinder.position);
|
|
||||||
const speed = 0.1;
|
|
||||||
|
|
||||||
// Detect if the ball is on the jumper
|
|
||||||
if (distance < 0.4 && this.ballIsOnJumper.can)
|
|
||||||
{
|
|
||||||
this.ballIsOnJumper.can = false;
|
|
||||||
ball.changeGravity(this.ballIsOnJumper);
|
|
||||||
this.#animationGravityChanger(this.arrObject[i].mesh, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gravity changer animation
|
// Gravity changer animation
|
||||||
for (let j = 0; j < 3; j++)
|
for (let j = 0; j < 3; j++)
|
||||||
{
|
{
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
/* By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/09/15 12:00:01 by edbernar #+# #+# */
|
/* Created: 2024/09/15 12:00:01 by edbernar #+# #+# */
|
||||||
/* Updated: 2024/09/21 22:52:13 by edbernar ### ########.fr */
|
/* Updated: 2024/09/25 13:38:28 by edbernar ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -31,6 +31,8 @@ function typeGame(content)
|
|||||||
player.makeAnimation(content.is_opponent);
|
player.makeAnimation(content.is_opponent);
|
||||||
else if (content.action == 7 && pageRenderer.actualPage == MultiOnlineGamePage)
|
else if (content.action == 7 && pageRenderer.actualPage == MultiOnlineGamePage)
|
||||||
map.placeObject(content);
|
map.placeObject(content);
|
||||||
|
else if (content.action == 8 && pageRenderer.actualPage == MultiOnlineGamePage)
|
||||||
|
map.activeJumper(content.index);
|
||||||
}
|
}
|
||||||
|
|
||||||
export { typeGame };
|
export { typeGame };
|
||||||
|
Reference in New Issue
Block a user