mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 18:31:55 -04:00
removed shown ray; jumping straight up;
This commit is contained in:
parent
23aa2a9ead
commit
f29545a167
@ -121,8 +121,14 @@ class NonPhysicsWalker(DirectObject.DirectObject):
|
|||||||
del self.pusher
|
del self.pusher
|
||||||
del self.lifter
|
del self.lifter
|
||||||
|
|
||||||
def collisionsOff(self):
|
def setCollisionsActive(self, active = 1):
|
||||||
assert(self.debugPrint("collisionsOff"))
|
assert(self.debugPrint("setCollisionsActive(active%s)"%(active,)))
|
||||||
|
if self.collisionsActive != active:
|
||||||
|
self.collisionsActive = active
|
||||||
|
if active:
|
||||||
|
self.cTrav.addCollider(self.cSphereNodePath, self.pusher)
|
||||||
|
self.cTrav.addCollider(self.cRayNodePath, self.lifter)
|
||||||
|
else:
|
||||||
self.cTrav.removeCollider(self.cSphereNodePath)
|
self.cTrav.removeCollider(self.cSphereNodePath)
|
||||||
self.cTrav.removeCollider(self.cRayNodePath)
|
self.cTrav.removeCollider(self.cRayNodePath)
|
||||||
|
|
||||||
@ -130,11 +136,6 @@ class NonPhysicsWalker(DirectObject.DirectObject):
|
|||||||
# right now to ensure we aren't standing in a wall.
|
# right now to ensure we aren't standing in a wall.
|
||||||
self.oneTimeCollide()
|
self.oneTimeCollide()
|
||||||
|
|
||||||
def collisionsOn(self):
|
|
||||||
assert(self.debugPrint("collisionsOn"))
|
|
||||||
self.cTrav.addCollider(self.cSphereNodePath, self.pusher)
|
|
||||||
self.cTrav.addCollider(self.cRayNodePath, self.lifter)
|
|
||||||
|
|
||||||
def oneTimeCollide(self):
|
def oneTimeCollide(self):
|
||||||
"""
|
"""
|
||||||
Makes one quick collision pass for the avatar, for instance as
|
Makes one quick collision pass for the avatar, for instance as
|
||||||
|
@ -148,7 +148,6 @@ class PhysicsWalker(DirectObject.DirectObject):
|
|||||||
else: # useCollisionHandlerQueue
|
else: # useCollisionHandlerQueue
|
||||||
self.cRayQueue = CollisionHandlerQueue()
|
self.cRayQueue = CollisionHandlerQueue()
|
||||||
self.cTrav.addCollider(self.cRayNodePath, self.cRayQueue)
|
self.cTrav.addCollider(self.cRayNodePath, self.cRayQueue)
|
||||||
self.cRayNodePath.show()
|
|
||||||
|
|
||||||
def determineHeight(self):
|
def determineHeight(self):
|
||||||
"""
|
"""
|
||||||
@ -550,7 +549,7 @@ class PhysicsWalker(DirectObject.DirectObject):
|
|||||||
else:
|
else:
|
||||||
# ...the avatar is very close to the ground (close enough to be
|
# ...the avatar is very close to the ground (close enough to be
|
||||||
# considered on the ground).
|
# considered on the ground).
|
||||||
if self.isAirborne:
|
if self.isAirborne and physObject.getVelocity().getZ() <= 0.0:
|
||||||
# ...the avatar has landed.
|
# ...the avatar has landed.
|
||||||
contactLength = contact.length()
|
contactLength = contact.length()
|
||||||
if contactLength>self.__hardLandingForce:
|
if contactLength>self.__hardLandingForce:
|
||||||
@ -565,9 +564,14 @@ class PhysicsWalker(DirectObject.DirectObject):
|
|||||||
#print "jump"
|
#print "jump"
|
||||||
#self.__jumpButton=0
|
#self.__jumpButton=0
|
||||||
messenger.send("jumpStart")
|
messenger.send("jumpStart")
|
||||||
|
if 0:
|
||||||
|
# ...jump away from walls and with with the slope normal.
|
||||||
jumpVec=Vec3(contact+Vec3.up())
|
jumpVec=Vec3(contact+Vec3.up())
|
||||||
#jumpVec=Vec3(rotAvatarToPhys.xform(jumpVec))
|
#jumpVec=Vec3(rotAvatarToPhys.xform(jumpVec))
|
||||||
jumpVec.normalize()
|
jumpVec.normalize()
|
||||||
|
else:
|
||||||
|
# ...jump straight up, even if next to a wall.
|
||||||
|
jumpVec=Vec3.up()
|
||||||
jumpVec*=self.avatarControlJumpForce
|
jumpVec*=self.avatarControlJumpForce
|
||||||
physObject.addImpulse(Vec3(jumpVec))
|
physObject.addImpulse(Vec3(jumpVec))
|
||||||
self.isAirborne = 1 # Avoid double impulse before fully airborne.
|
self.isAirborne = 1 # Avoid double impulse before fully airborne.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user