mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 02:42:49 -04:00
- Added autosailing
This commit is contained in:
parent
c464005eec
commit
beb9eb025b
@ -63,6 +63,7 @@ class ShipPilot2(PhysicsWalker):
|
|||||||
self.__slideSpeed=0.0
|
self.__slideSpeed=0.0
|
||||||
self.__vel=Vec3(0.0)
|
self.__vel=Vec3(0.0)
|
||||||
self.collisionsActive = 0
|
self.collisionsActive = 0
|
||||||
|
self.currentTurning = 0.0
|
||||||
|
|
||||||
self.isAirborne = 0
|
self.isAirborne = 0
|
||||||
self.highMark = 0
|
self.highMark = 0
|
||||||
@ -89,7 +90,8 @@ class ShipPilot2(PhysicsWalker):
|
|||||||
#self.setupShip()
|
#self.setupShip()
|
||||||
self.setupPhysics(ship)
|
self.setupPhysics(ship)
|
||||||
self.ship = ship
|
self.ship = ship
|
||||||
|
|
||||||
|
"""
|
||||||
#*# Debug:
|
#*# Debug:
|
||||||
if not hasattr(ship, "acceleration"):
|
if not hasattr(ship, "acceleration"):
|
||||||
self.ship.acceleration = 60
|
self.ship.acceleration = 60
|
||||||
@ -100,7 +102,8 @@ class ShipPilot2(PhysicsWalker):
|
|||||||
self.ship.maxTurn = 30
|
self.ship.maxTurn = 30
|
||||||
self.ship.anchorDrag = .9
|
self.ship.anchorDrag = .9
|
||||||
self.ship.hullDrag = .9
|
self.ship.hullDrag = .9
|
||||||
|
"""
|
||||||
|
|
||||||
def setupRay(self, floorBitmask, floorOffset):
|
def setupRay(self, floorBitmask, floorOffset):
|
||||||
# This is a ray cast from your head down to detect floor polygons
|
# This is a ray cast from your head down to detect floor polygons
|
||||||
# A toon is about 4.0 feet high, so start it there
|
# A toon is about 4.0 feet high, so start it there
|
||||||
@ -593,6 +596,14 @@ class ShipPilot2(PhysicsWalker):
|
|||||||
jump = inputState.isSet("jump")
|
jump = inputState.isSet("jump")
|
||||||
# Determine what the speeds are based on the buttons:
|
# Determine what the speeds are based on the buttons:
|
||||||
|
|
||||||
|
# Check for Auto-Sailing
|
||||||
|
if self.ship.getIsAutoSailing():
|
||||||
|
forward = 1
|
||||||
|
reverse = 0
|
||||||
|
|
||||||
|
# How far did we move based on the amount of time elapsed?
|
||||||
|
dt=ClockObject.getGlobalClock().getDt()
|
||||||
|
|
||||||
# this was causing the boat to get stuck moving forward or back
|
# this was causing the boat to get stuck moving forward or back
|
||||||
if 0:
|
if 0:
|
||||||
if not hasattr(self, "sailsDeployed"):
|
if not hasattr(self, "sailsDeployed"):
|
||||||
@ -611,8 +622,11 @@ class ShipPilot2(PhysicsWalker):
|
|||||||
self.sailsDeployed = -1.0
|
self.sailsDeployed = -1.0
|
||||||
self.__speed = self.ship.acceleration * self.sailsDeployed
|
self.__speed = self.ship.acceleration * self.sailsDeployed
|
||||||
else:
|
else:
|
||||||
self.__speed=(forward and self.ship.acceleration or
|
self.__speed=(forward and self.ship.acceleration) or \
|
||||||
reverse and -self.ship.reverseAcceleration)
|
(reverse and -self.ship.reverseAcceleration)
|
||||||
|
#self.__speed=(forward and min(dt*(self.__speed + self.ship.acceleration), self.ship.maxSpeed) or
|
||||||
|
# reverse and min(dt*(self.__speed - self.ship.reverseAcceleration), self.ship.maxReverseSpeed))
|
||||||
|
|
||||||
avatarSlideSpeed=self.ship.acceleration*0.5
|
avatarSlideSpeed=self.ship.acceleration*0.5
|
||||||
#self.__slideSpeed=slide and (
|
#self.__slideSpeed=slide and (
|
||||||
# (turnLeft and -avatarSlideSpeed) or
|
# (turnLeft and -avatarSlideSpeed) or
|
||||||
@ -623,8 +637,7 @@ class ShipPilot2(PhysicsWalker):
|
|||||||
self.__rotationSpeed=not slide and (
|
self.__rotationSpeed=not slide and (
|
||||||
(turnLeft and self.ship.turnRate) or
|
(turnLeft and self.ship.turnRate) or
|
||||||
(turnRight and -self.ship.turnRate))
|
(turnRight and -self.ship.turnRate))
|
||||||
|
|
||||||
|
|
||||||
# Enable debug turbo mode
|
# Enable debug turbo mode
|
||||||
maxSpeed = self.ship.maxSpeed
|
maxSpeed = self.ship.maxSpeed
|
||||||
if __debug__:
|
if __debug__:
|
||||||
@ -634,11 +647,8 @@ class ShipPilot2(PhysicsWalker):
|
|||||||
self.__slideSpeed*=4.0
|
self.__slideSpeed*=4.0
|
||||||
self.__rotationSpeed*=1.25
|
self.__rotationSpeed*=1.25
|
||||||
maxSpeed = self.ship.maxSpeed * 4.0
|
maxSpeed = self.ship.maxSpeed * 4.0
|
||||||
|
|
||||||
|
|
||||||
#*#
|
#*#
|
||||||
if not hasattr(self, "currentTurning"):
|
|
||||||
self.currentTurning = 0.0
|
|
||||||
self.currentTurning += self.__rotationSpeed
|
self.currentTurning += self.__rotationSpeed
|
||||||
if self.currentTurning > self.ship.maxTurn:
|
if self.currentTurning > self.ship.maxTurn:
|
||||||
self.currentTurning = self.ship.maxTurn
|
self.currentTurning = self.ship.maxTurn
|
||||||
@ -659,9 +669,6 @@ class ShipPilot2(PhysicsWalker):
|
|||||||
if self.wantDebugIndicator:
|
if self.wantDebugIndicator:
|
||||||
self.displayDebugInfo()
|
self.displayDebugInfo()
|
||||||
|
|
||||||
# How far did we move based on the amount of time elapsed?
|
|
||||||
dt=ClockObject.getGlobalClock().getDt()
|
|
||||||
|
|
||||||
if self.needToDeltaPos:
|
if self.needToDeltaPos:
|
||||||
self.setPriorParentVector()
|
self.setPriorParentVector()
|
||||||
self.needToDeltaPos = 0
|
self.needToDeltaPos = 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user