Skip to content

Commit cd2d4ec

Browse files
author
Abhishek Nath
committed
Gravity walker now handles gravity changes through getGravity and setGravity
1 parent 5dc772e commit cd2d4ec

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

direct/src/controls/GravityWalker.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class GravityWalker(DirectObject.DirectObject):
3131
DiagonalFactor = math.sqrt(2.) / 2.
3232

3333
# special methods
34-
def __init__(self, gravity = -32.1740, standableGround=0.707,
34+
def __init__(self, gravity = 64.348, standableGround=0.707,
3535
hardLandingForce=16.0):
3636
assert self.notify.debugStateCall(self)
3737
DirectObject.DirectObject.__init__(self)
@@ -165,7 +165,7 @@ def getSpeeds(self):
165165

166166
def getIsAirborne(self):
167167
return self.isAirborne
168-
168+
169169
def setAvatar(self, avatar):
170170
self.avatar = avatar
171171
if avatar is not None:
@@ -187,7 +187,7 @@ def setupRay(self, bitmask, floorOffset, reach):
187187

188188
# set up floor collision mechanism
189189
self.lifter = CollisionHandlerGravity()
190-
self.lifter.setGravity(32.174 * 2.0)
190+
self.lifter.setGravity(self.__gravity)
191191
self.lifter.addInPattern("enter%in")
192192
self.lifter.addOutPattern("exit%in")
193193
self.lifter.setOffset(floorOffset)
@@ -283,6 +283,12 @@ def swapFloorBitMask(self, oldMask, newMask):
283283
if self.cRayNodePath and not self.cRayNodePath.isEmpty():
284284
self.cRayNodePath.node().setFromCollideMask(self.floorBitmask)
285285

286+
def setGravity(self, gravity):
287+
self.__gravity = gravity
288+
289+
def getGravity(self, gravity):
290+
return self.__gravity
291+
286292
def initializeCollisions(self, collisionTraverser, avatarNodePath,
287293
avatarRadius = 1.4, floorOffset = 1.0, reach = 1.0):
288294
"""
@@ -384,7 +390,7 @@ def setCollisionsActive(self, active = 1):
384390
# position, so we never trigger things that are
385391
# behind other polygons.
386392
base.shadowTrav.addCollider(self.cEventSphereNodePath, self.event)
387-
393+
388394
else:
389395
if hasattr(self, 'cTrav'):
390396
self.cTrav.removeCollider(self.cWallSphereNodePath)
@@ -513,7 +519,7 @@ def handleAvatarControls(self, task):
513519
self.speed*=base.debugRunningMultiplier
514520
self.slideSpeed*=base.debugRunningMultiplier
515521
self.rotationSpeed*=1.25
516-
522+
517523
if self.needToDeltaPos:
518524
self.setPriorParentVector()
519525
self.needToDeltaPos = 0
@@ -676,7 +682,7 @@ def flushEventHandlers(self):
676682
self.floorPusher.flush()
677683
self.event.flush()
678684
self.lifter.flush() # not currently defined or needed
679-
685+
680686
if __debug__:
681687
def debugPrint(self, message):
682688
"""for debugging"""

0 commit comments

Comments
 (0)