mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
getting floor enter events from ray instead of sphere
This commit is contained in:
parent
68f91e700a
commit
18f2b61c32
@ -167,21 +167,21 @@ class GravityWalker(DirectObject.DirectObject):
|
||||
#assert(self.debugPrint("getSpeeds()"))
|
||||
return (self.speed, self.rotationSpeed)
|
||||
|
||||
def setupRay(self, floorBitmask, floorOffset):
|
||||
def setupRay(self, bitmask, floorOffset):
|
||||
# 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
|
||||
cRay = CollisionRay(0.0, 0.0, 4.0, 0.0, 0.0, -1.0)
|
||||
cRayNode = CollisionNode('GW.cRayNode')
|
||||
cRayNode.addSolid(cRay)
|
||||
self.cRayNodePath = self.avatarNodePath.attachNewNode(cRayNode)
|
||||
cRayNode.setFromCollideMask(floorBitmask)
|
||||
cRayNode.setFromCollideMask(bitmask)
|
||||
cRayNode.setIntoCollideMask(BitMask32.allOff())
|
||||
|
||||
# set up floor collision mechanism
|
||||
self.lifter = CollisionHandlerGravity()
|
||||
self.lifter.setGravity(32.174 * 2.0)
|
||||
#self.lifter.setInPattern("enterRay-%in")
|
||||
#self.lifter.setOutPattern("exitRay-%in")
|
||||
self.lifter.addInPattern("enter%in")
|
||||
self.lifter.addOutPattern("exit%in")
|
||||
self.lifter.setOffset(floorOffset)
|
||||
|
||||
# Limit our rate-of-fall with the lifter.
|
||||
@ -235,8 +235,8 @@ class GravityWalker(DirectObject.DirectObject):
|
||||
|
||||
# set up collision mechanism
|
||||
handler = CollisionHandlerEvent()
|
||||
handler.setInPattern("enter%in")
|
||||
handler.setOutPattern("exit%in")
|
||||
handler.addInPattern("enter%in")
|
||||
handler.addOutPattern("exit%in")
|
||||
|
||||
self.event = handler
|
||||
self.cEventSphereNodePath = cSphereNodePath
|
||||
@ -281,7 +281,7 @@ class GravityWalker(DirectObject.DirectObject):
|
||||
|
||||
self.setupRay(floorBitmask, self.floorOffset)
|
||||
self.setupWallSphere(wallBitmask, avatarRadius)
|
||||
self.setupEventSphere(wallBitmask|floorBitmask, avatarRadius)
|
||||
self.setupEventSphere(wallBitmask, avatarRadius)
|
||||
# self.setupFloorSphere(floorBitmask, avatarRadius)
|
||||
|
||||
self.setCollisionsActive(1)
|
||||
|
Loading…
x
Reference in New Issue
Block a user