diff --git a/frontend/src/views/minigames/TaxiGame.vue b/frontend/src/views/minigames/TaxiGame.vue index 8f04c28..e09f3ba 100644 --- a/frontend/src/views/minigames/TaxiGame.vue +++ b/frontend/src/views/minigames/TaxiGame.vue @@ -1973,19 +1973,23 @@ export default { updateCarMovement(car) { // Wenn das Auto gestoppt ist (nach Kollision mit stehendem Taxi), prüfe ob Taxi weg ist if (car.isStopped) { - // Prüfe ob das Taxi noch in der Nähe ist (Kollisionsabstand + 50px Puffer) + // Mindestens 1 Sekunde warten, bevor das Auto wieder fahren darf + const now = Date.now(); + const minWaitTime = 1000; // 1 Sekunde + + if (car.stopTime && (now - car.stopTime) < minWaitTime) { + return; // Noch nicht lange genug gestoppt + } + + // Prüfe ob das Taxi noch in der Nähe ist const distance = Math.sqrt( Math.pow(car.x - this.taxi.x, 2) + Math.pow(car.y - this.taxi.y, 2) ); - const collisionDistance = 80; // Etwa die Größe der Kollisionsboxen - console.log(`Auto ${car.id} gestoppt - Distanz zum Taxi: ${distance.toFixed(1)}px`); - - if (distance > 30) { + if (distance > 40) { // Taxi ist weg - Auto kann wieder fahren car.isStopped = false; car.speed = car.originalSpeed || 0.5; // Ursprüngliche Geschwindigkeit wiederherstellen - console.log(`Auto ${car.id} kann wieder fahren - Taxi ist weg (Distanz: ${distance.toFixed(1)}px)`); } return; } @@ -3011,22 +3015,10 @@ export default { handleCarTaxiCollision(car) { // Wenn das Taxi steht (speed = 0), soll das Auto zurückfahren und stehen bleiben if (Math.abs(this.taxi.speed) < 0.1) { - // Auto 10 Pixel zurückfahren in entgegengesetzter Richtung - const backDistance = 10; - - if (car.direction === 'up') { - car.y += backDistance; - } else if (car.direction === 'down') { - car.y -= backDistance; - } else if (car.direction === 'left') { - car.x += backDistance; - } else if (car.direction === 'right') { - car.x -= backDistance; - } - - // Auto zum Stehen bringen + // Auto zum Stehen bringen OHNE Zurücksetzen car.speed = 0; car.isStopped = true; + car.stopTime = Date.now(); // Zeitpunkt des Stopps merken console.log(`Auto ${car.id} ist mit stehendem Taxi kollidiert und steht jetzt`); } else { @@ -3706,13 +3698,6 @@ export default { // Zeichne Autos this.drawCars(); - // Debug: Kollision-Overlays zeichnen (falls vorhanden) - if (this._collisionDebug && this._collisionDebug.ttl > 0) { - const dbg = this._collisionDebug; - this._drawDebugPoly(dbg.aCorners, 'rgba(255,0,0,0.35)', '#ff0000'); - this._drawDebugPoly(dbg.bCorners, 'rgba(0,128,255,0.35)', '#0080ff'); - dbg.ttl -= 1; - } // Zeichne Taxi this.ctx.save();