From d623efb9ea99f7b059bf16733de6057cfc7ec35d Mon Sep 17 00:00:00 2001 From: greytower <> Date: Tue, 13 Dec 2005 04:54:37 +0000 Subject: [PATCH] Reverse speed in boats now slower than forward --- direct/src/controls/ShipPilot.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/direct/src/controls/ShipPilot.py b/direct/src/controls/ShipPilot.py index 4efdd431b0..ab36807ff2 100755 --- a/direct/src/controls/ShipPilot.py +++ b/direct/src/controls/ShipPilot.py @@ -91,7 +91,7 @@ class ShipPilot(PhysicsWalker.PhysicsWalker): self.ship.acceleration = 60 self.ship.maxSpeed = 12 self.ship.reverseAcceleration = 10 - self.ship.maxReverseSpeed = 20 + self.ship.maxReverseSpeed = 2 self.ship.turnRate = 3 self.ship.maxTurn = 30 self.ship.anchorDrag = .9 @@ -801,6 +801,10 @@ class ShipPilot(PhysicsWalker.PhysicsWalker): # Check to see if we're moving at all: if self.__speed or self.__slideSpeed or self.__rotationSpeed or moveToGround!=Vec3.zero(): distance = dt * self.__speed + goForward = True + if (distance < 0): + goForward = False + distance /= 5 slideDistance = dt * self.__slideSpeed rotation = dt * self.__rotationSpeed @@ -819,7 +823,10 @@ class ShipPilot(PhysicsWalker.PhysicsWalker): newVector = Vec3(step) #newVector=Vec3(rotMat.xform(newVector)) #maxLen = maxSpeed - maxLen = self.ship.acceleration + if (goForward): + maxLen = self.ship.acceleration + else: + maxLen = self.ship.reverseAcceleration if newVector.length() > maxLen: newVector.normalize() newVector *= maxLen @@ -855,14 +862,20 @@ class ShipPilot(PhysicsWalker.PhysicsWalker): messenger.send("avatarMoving") else: self.__vel.set(0.0, 0.0, 0.0) + goForward = True #*# speed = physObject.getVelocity() speedLen = speed.length() - if speedLen > maxSpeed: - speed.normalize() - speed *= maxSpeed + if (goForward): + if speedLen > maxSpeed: + speed.normalize() + speed *= maxSpeed + else: + if speedLen > self.ship.maxReverseSpeed: + speed.normalize() + speed *= self.ship.maxReverseSpeed #speed *= 1.0 - dt * 0.05 physObject.setVelocity(speed)