diff --git a/site/real_game/blender/exported/map1.glb b/site/real_game/blender/exported/map1.glb new file mode 100644 index 0000000..000e717 Binary files /dev/null and b/site/real_game/blender/exported/map1.glb differ diff --git a/site/real_game/blender/map1.blend b/site/real_game/blender/map1.blend new file mode 100644 index 0000000..291d921 Binary files /dev/null and b/site/real_game/blender/map1.blend differ diff --git a/site/real_game/blender/map1.blend1 b/site/real_game/blender/map1.blend1 new file mode 100644 index 0000000..6cdf012 Binary files /dev/null and b/site/real_game/blender/map1.blend1 differ diff --git a/site/real_game/class/Ball.js b/site/real_game/class/Ball.js index 535e030..53880c0 100644 --- a/site/real_game/class/Ball.js +++ b/site/real_game/class/Ball.js @@ -6,7 +6,7 @@ /* By: edbernar diffTop) speed *= -1; @@ -78,6 +81,7 @@ class Ball else this.setPosition(this.object.position.x, this.limits.down, this.object.position.z); } + speed -= speed * slower; }, 10); } diff --git a/site/real_game/class/Map.js b/site/real_game/class/Map.js index 0d4fb3b..f16c756 100644 --- a/site/real_game/class/Map.js +++ b/site/real_game/class/Map.js @@ -6,22 +6,27 @@ /* By: edbernar { + playerExist = false; + }) + this.cleanup.register(this, null); + } + + update() + { + //en attente du serveur + } +} + +export { Opponent }; \ No newline at end of file diff --git a/site/real_game/class/Player.js b/site/real_game/class/Player.js index 77dfba5..9e54500 100644 --- a/site/real_game/class/Player.js +++ b/site/real_game/class/Player.js @@ -6,7 +6,7 @@ /* By: edbernar { playerExist = false; }) @@ -103,7 +104,7 @@ class Player this.setCameraPosition( this.object.position.x, this.object.position.y - (this.object.position.y >= this.limits.up ? 0.7 : -0.7), - this.object.position.z + 2 + this.object.position.z + 5 ); this.camera.rotation.set(0, 0, 0); } @@ -113,7 +114,7 @@ class Player }); } - pointAnimation(scene) + pointAnimation(map) { const tmpCamera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 0.1, 10000); const tmp = this.camera; @@ -128,7 +129,7 @@ class Player document.getElementsByTagName('canvas')[0].style.filter = 'brightness(1)'; }, 300) setTimeout(() => { - tmpCamera.position.set(-3, this.limits.up / 2 + 0.5, -3); + tmpCamera.position.set(this.limits.left, this.limits.up / 2 + 0.5, map.centerPos.z); this.isOnPointAnim = true; this.camera = tmpCamera; interval = setInterval(() => { @@ -164,6 +165,58 @@ class Player }, 200) } + pointOpponentAnimation(map, oppponentObject) + { + const tmpCamera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 0.1, 10000); + const tmp = this.camera; + let interval = null; + const startColor = oppponentObject.material.color.clone(); + let hue = 0; + + document.getElementsByTagName('canvas')[0].style.animation = 'fadeIn 0.199s'; + document.getElementsByTagName('canvas')[0].style.filter = 'brightness(0)'; + setTimeout(() => { + document.getElementsByTagName('canvas')[0].style.animation = 'fadeOut 0.199s'; + document.getElementsByTagName('canvas')[0].style.filter = 'brightness(1)'; + }, 300) + setTimeout(() => { + tmpCamera.position.set(this.limits.left, this.limits.up / 2 + 0.5, map.centerPos.z); + this.isOnPointAnim = true; + this.camera = tmpCamera; + interval = setInterval(() => { + tmpCamera.lookAt(oppponentObject.position); + console.log(tmpCamera.position) + hue += 0.01; + if (hue > 1) + hue = 0; + oppponentObject.material.color.setHSL(hue, 1, 0.5); + tmpCamera.fov -= 0.05; + tmpCamera.updateProjectionMatrix(); + }, 10); + setTimeout(() => { + clearInterval(interval); + document.getElementsByTagName('canvas')[0].style.animation = null; + document.getElementsByTagName('canvas')[0].style.animation = 'fadeIn 0.19s'; + document.getElementsByTagName('canvas')[0].style.filter = 'brightness(0)'; + setTimeout(() => { + this.camera = tmp; + oppponentObject.material.color.copy(startColor); + this.isOnPointAnim = false; + if (!this.cameraFixed) + { + this.setCameraPosition( + this.object.position.x, + this.object.position.y - (this.object.position.y >= this.limits.up ? 0.7 : -0.7), + this.object.position.z + 2 + ); + } + document.getElementsByTagName('canvas')[0].style.animation = 'fadeOut 0.199s'; + document.getElementsByTagName('canvas')[0].style.filter = 'brightness(1)'; + }, 200); + }, 4000); + }, 200) + } + update() { let i; @@ -223,4 +276,4 @@ class Player } }; -export { Player }; \ No newline at end of file +export { Player, playerExist }; \ No newline at end of file diff --git a/site/real_game/main.js b/site/real_game/main.js index 7cbd98b..9ee3742 100644 --- a/site/real_game/main.js +++ b/site/real_game/main.js @@ -6,7 +6,7 @@ /* By: edbernar { if (e.key == 'g') - player.pointAnimation(scene); + player.pointAnimation(map); + if (e.key == 'h') + player.pointOpponentAnimation(map, opponent.object); + if (e.key == 'c') + debug = !debug; }) renderer.setAnimationLoop(loop)