From 1d8c9b7a1e17be73f2c6a0f458fbda6389e5035c Mon Sep 17 00:00:00 2001 From: Antoine Date: Mon, 7 Jun 2021 16:59:19 +0200 Subject: [PATCH] =?UTF-8?q?TrackingTore=20fonctionne=20=C3=A0=20peu=20pr?= =?UTF-8?q?=C3=A8s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/engine/Engine.java | 1 - src/engine/camera/TrackingTore.java | 20 +++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/engine/Engine.java b/src/engine/Engine.java index 9d069cb..731a4c1 100644 --- a/src/engine/Engine.java +++ b/src/engine/Engine.java @@ -230,7 +230,6 @@ public class Engine { obj1, obj2, this); - this.cameraTrackingBetweenTwoObjectGl(); } public void cameraTrackingBetweenTwoObjectGl(){ diff --git a/src/engine/camera/TrackingTore.java b/src/engine/camera/TrackingTore.java index 9b059df..87b6261 100644 --- a/src/engine/camera/TrackingTore.java +++ b/src/engine/camera/TrackingTore.java @@ -30,22 +30,20 @@ public class TrackingTore implements TrackingDummy { //Track his current position and other useful data float xPos = this.engine.getViewXPos(); float dimension = this.engine.getCamera().getDimension(); - float distance = Math.abs(left.getXPos() - right.getXPos()) + right.getWidth() * right.getScalingFactor(); - float middle_point = (left.getXPos() + right.getXPos() + right.getWidth() * right.getScalingFactor()) / 2; + float distance = Math.abs(left.getXPos() - (right.getXPos()) + right.getWidth() * right.getScalingFactor()) + 1500.0f; // Il faut un offset sinon si la distance est de 0 on a la camera qui zoom vers l'infini + float middle_point = (left.getXPos() + (right.getXPos() + right.getWidth() * right.getScalingFactor())) / 2; + + vec.x = -middle_point - xPos; + this.engine.getCamera().zoom((distance / 2)/dimension); if (left.getXPos() < xPos - rayonExt){ - // Il faut décaler à gauche + dezoom - vec.x = - middle_point - xPos; - this.rayonExt = Math.abs(left.getXPos() - xPos); - //mtn on dezoom il faut calculer le rapport necessaire pour avoir les deux objets dans le champs - this.engine.getCamera().zoom(distance/dimension); + // le rayonExt augmente + dezoom } else if(left.getXPos() > xPos - rayonExt + offset){ -// this.engine.getCamera().zoom(dimension/distance); - // Il faut décaler à droite + zoom + // le rayonExt diminue + zoom } else if(right.getXPos() > xPos + rayonExt){ - // Il faut décaler à droite + dezoom + // le rayonExt augmente + dezoom } else if(right.getXPos() < xPos + rayonExt - offset){ - // Il faut décaler à gauche + zoom + // le rayonExt diminue + zoom } return vec; }