当前位置: 首页>>代码示例>>Python>>正文


Python GeomNode.getDefaultCollideMask方法代码示例

本文整理汇总了Python中pandac.PandaModules.GeomNode.getDefaultCollideMask方法的典型用法代码示例。如果您正苦于以下问题:Python GeomNode.getDefaultCollideMask方法的具体用法?Python GeomNode.getDefaultCollideMask怎么用?Python GeomNode.getDefaultCollideMask使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pandac.PandaModules.GeomNode的用法示例。


在下文中一共展示了GeomNode.getDefaultCollideMask方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __init__

# 需要导入模块: from pandac.PandaModules import GeomNode [as 别名]
# 或者: from pandac.PandaModules.GeomNode import getDefaultCollideMask [as 别名]
 def __init__(self, render, camera):
     #Since we are using collision detection to do picking, we set it up like any other collision detection system with a traverser and a handler 
     self.picker = CollisionTraverser()            #Make a traverser 
     self.pq     = CollisionHandlerQueue()         #Make a handler 
     #Make a collision node for our picker ray 
     self.pickerNode = CollisionNode('mouseRay') 
     #Attach that node to the camera since the ray will need to be positioned relative to it 
     self.pickerNP = camera.attachNewNode(self.pickerNode) 
     #Everything to be picked will use bit 1. This way if we were doing other collision we could seperate it 
     self.pickerNode.setFromCollideMask(BitMask32.bit(1)) 
     self.pickerRay = CollisionRay()               #Make our ray 
     self.pickerNode.addSolid(self.pickerRay)      #Add it to the collision node 
     #Register the ray as something that can cause collisions 
     self.picker.addCollider(self.pickerNP, self.pq) 
     #self.picker.showCollisions(render) 
     
     self.pst = CollisionTraverser()            #Make a traverser 
     self.hqp     = CollisionHandlerQueue()         #Make a handler 
     #Make a collision node for our picker ray 
     
     self.pstNode = CollisionNode('mouseRaytoObj') 
     #Attach that node to the camera since the ray will need to be positioned relative to it 
     self.pstNode.setFromCollideMask(GeomNode.getDefaultCollideMask())
     self.pstNode2 = camera.attachNewNode(self.pstNode) 
     self.pickerRayObj = CollisionRay()   
     #Everything to be picked will use bit 1. This way if we were doing other collision we could seperate it 
     #self.pstNode.setFromCollideMask(BitMask32.bit(1)) 
     self.pstNode.addSolid(self.pickerRayObj)      #Add it to the collision node 
     #Register the ray as something that can cause collisions 
     self.pst.addCollider(self.pstNode2, self.hqp) 
     #self.pst.showCollisions(render) 
开发者ID:eliasmoura,项目名称:ProjetoJogo,代码行数:33,代码来源:mouseLoad.py

示例2: __init__

# 需要导入模块: from pandac.PandaModules import GeomNode [as 别名]
# 或者: from pandac.PandaModules.GeomNode import getDefaultCollideMask [as 别名]
 def __init__(self,gmap,gaming_zone):
    DirectObject.__init__(self)
    #gaming zone (used for mouse movement), as a tools.Rectangle
    self.gaming_zone=gaming_zone
    #actual camera node
    self.p3dcam=base.camera
    #what the cam is oriented to
    self._target=base.render.attachNewNode('GaminCam.target')
    #range=[0,1] between min and max closeness to ground
    self.level=.7
    #
    #keys_down acts as a pool containing keys (+mouse buttons) currently down
    self.keys_down=[]
    update_list.append(self.update)
    #setup for mouse picking
    picker_node=CollisionNode('gcam_to_mouse_ray')#general collision node
    picker_node.setFromCollideMask(GeomNode.getDefaultCollideMask())
    self.picker_ray=CollisionRay()#solid ray to attach to coll node
    picker_node.addSolid(self.picker_ray)
    self.picker_np=self.p3dcam.attachNewNode(picker_node)#attach this node to gcam
    self.collision_queue=CollisionHandlerQueue()#stores collisions
    self.collision_traverser=CollisionTraverser('gcam_traverser')#actual computer
    self.collision_traverser.addCollider(self.picker_np,self.collision_queue)
    base.cTrav=self.collision_traverser
    self.gmap=gmap
    #stack of states (state=pos+zoom)
    self.states_stack=[]
    #enable the cam to move according to keyboard and mouse
    self.move_enabled=True
开发者ID:onze,项目名称:goLive,代码行数:31,代码来源:gamingcam.py

示例3: collideWithGeom

# 需要导入模块: from pandac.PandaModules import GeomNode [as 别名]
# 或者: from pandac.PandaModules.GeomNode import getDefaultCollideMask [as 别名]
 def collideWithGeom(self):
     # The into collide mask is the bit pattern colliders look at
     # when deciding whether or not to test for a collision "into"
     # this collision solid.  Set to all Off so this collision solid
     # will not be considered in any collision tests
     self.collisionNode.setIntoCollideMask(BitMask32().allOff())
     # The from collide mask is the bit pattern *this* collision solid
     # compares against the into collide mask of candidate collision solids
     # Turn this mask all off since we're not testing for collisions against
     # collision solids, but we do want to test against geometry
     self.collisionNode.setFromCollideMask(GeomNode.getDefaultCollideMask())
开发者ID:AdrianF98,项目名称:Toontown-2-Revised,代码行数:13,代码来源:seSelection.py

示例4: init_collide

# 需要导入模块: from pandac.PandaModules import GeomNode [as 别名]
# 或者: from pandac.PandaModules.GeomNode import getDefaultCollideMask [as 别名]
 def init_collide(self):
     from pandac.PandaModules import CollisionTraverser, CollisionNode
     from pandac.PandaModules import CollisionHandlerQueue, CollisionRay
     self.cTrav = CollisionTraverser('MousePointer')
     self.cQueue = CollisionHandlerQueue()
     self.cNode = CollisionNode('MousePointer')
     self.cNodePath = base.camera.attachNewNode(self.cNode)
     self.cNode.setFromCollideMask(GeomNode.getDefaultCollideMask())
     self.cRay = CollisionRay()
     self.cNode.addSolid(self.cRay)
     self.cTrav.addCollider(self.cNodePath, self.cQueue)
开发者ID:edom71,项目名称:hexabots,代码行数:13,代码来源:__init__.py

示例5: create_ray

# 需要导入模块: from pandac.PandaModules import GeomNode [as 别名]
# 或者: from pandac.PandaModules.GeomNode import getDefaultCollideMask [as 别名]
 def create_ray(self, object, entity, name, show = False, x = 0, y = 0, z = 0,
                dx = 0, dy = 0, dz = -1):
   # create queue
   object.queue = CollisionHandlerQueue()
   # create ray
   object.rayNP = entity.attachNewNode(CollisionNode(name))
   object.ray = CollisionRay(x, y, 1, dx, dy, dz)
   object.rayNP.node().addSolid(object.ray)
   object.rayNP.node().setFromCollideMask(GeomNode.getDefaultCollideMask())
   base.cTrav.addCollider(object.rayNP, object.queue)
   if show:
     object.rayNP.show()
开发者ID:KingAbbott,项目名称:devsyn,代码行数:14,代码来源:picker.py

示例6: createRay

# 需要导入模块: from pandac.PandaModules import GeomNode [as 别名]
# 或者: from pandac.PandaModules.GeomNode import getDefaultCollideMask [as 别名]
 def createRay(
     self, obj, ent, name, show=False, x=0, y=0, z=0, dx=0, dy=0, dz=-1
 ):
     #create queue
     obj.queue = CollisionHandlerQueue()
     #create ray
     obj.rayNP = ent.attachNewNode(CollisionNode(name))
     obj.ray = CollisionRay(x, y, z, dx, dy, dz)
     obj.rayNP.node().addSolid(obj.ray)
     obj.rayNP.node().setFromCollideMask(GeomNode.getDefaultCollideMask())
     sandbox.pickTrav.addCollider(obj.rayNP, obj.queue)
     if show:
         obj.rayNP.show()
开发者ID:croxis,项目名称:apollo,代码行数:15,代码来源:picker.py

示例7: __init__

# 需要导入模块: from pandac.PandaModules import GeomNode [as 别名]
# 或者: from pandac.PandaModules.GeomNode import getDefaultCollideMask [as 别名]
	def __init__(self):
		''' Should the traverser be shared? '''
		
		LOG.debug("[Selector] Initializing")
		
		# The collision traverser does the checking of solids for collisions
		self.cTrav = CollisionTraverser()
		
		# The collision handler queue is a simple handler that records all
		# detected collisions during traversal
		self.cHandler = CollisionHandlerQueue()
		
		self.pickerNode = CollisionNode('mouseRay')
		self.pickerNP = camera.attachNewNode(self.pickerNode)
		self.pickerNode.setFromCollideMask(GeomNode.getDefaultCollideMask())
		self.pickerRay = CollisionRay()
		self.pickerNode.addSolid(self.pickerRay)
		self.cTrav.addCollider(self.pickerNP, self.cHandler)
		
		# Start listening to clicks
		self.resume()
开发者ID:crempp,项目名称:Fire-Water,代码行数:23,代码来源:Controller.py

示例8: init_ui

# 需要导入模块: from pandac.PandaModules import GeomNode [as 别名]
# 或者: from pandac.PandaModules.GeomNode import getDefaultCollideMask [as 别名]
    def init_ui(self):
        self.cTrav = CollisionTraverser('ui_collision_traverser')
        self.collision_handler = CollisionHandlerQueue()
        picker_node = CollisionNode('mouse_click_ray')
        self.picker_node_path = self.camera.attachNewNode(picker_node)
        picker_node.setFromCollideMask(GeomNode.getDefaultCollideMask())
        self.picker_ray = CollisionRay()
        picker_node.addSolid(self.picker_ray)
        self.cTrav.addCollider(self.picker_node_path, self.collision_handler)

        '''
        #debug: make a visible line segment
        from pandac.PandaModules import LineSegs, LVecBase4f, NodePath
        seg_drawer = LineSegs()
        seg_drawer.setColor(LVecBase4f(1, 0, 0, 1)) #red
        seg_drawer.moveTo(0,0,0)
        seg_drawer.drawTo(0,100,0)
        NodePath(seg_drawer.create()).reparentTo(self.picker_node_path)
        '''

        self.accept('a', self.mouse_ray)
开发者ID:doublereedkurt,项目名称:roiders,代码行数:23,代码来源:game.py

示例9: PathFinder

# 需要导入模块: from pandac.PandaModules import GeomNode [as 别名]
# 或者: from pandac.PandaModules.GeomNode import getDefaultCollideMask [as 别名]
from pandac.PandaModules import CollisionRay
from pandac.PandaModules import CollisionHandlerQueue
from pandac.PandaModules import CollisionTraverser
from pandac.PandaModules import GeomNode
from pandac.PandaModules import LineSegs
from pandac.PandaModules import NodePath
from pandac.PandaModules import Point3
from pandac.PandaModules import Vec3

import math
from math import sqrt

wallRayNP = render.attachNewNode(CollisionNode("wall ray collision node"))
wallRayNP.node().addSolid(CollisionRay(0,0,0,0,1,0))
wallRayNP.node().setIntoCollideMask(BitMask32.allOff())
wallRayNP.node().setFromCollideMask(BitMask32.allOn() & ~GeomNode.getDefaultCollideMask())
wallRayNP.node().setFromCollideMask(wallRayNP.node().getFromCollideMask() & ~BitMask32.bit(1))
#wallRayNP.show()

collisionHandler = CollisionHandlerQueue()
collisionTraverser = CollisionTraverser("pathfinder's collisionTraverser")
collisionTraverser.addCollider(wallRayNP, collisionHandler)
collisionTraverser.setRespectPrevTransform(True)

class PathFinder():
    
##    def __init__(self, position, ID = -1):
##        NodePath.__init__(self, "Waypoint")
##        self.position = position
##        self.texture = loader.loadTexture("textures/blue.jpg")
##        self.costToThisNode = 0
开发者ID:Babi-Wan,项目名称:robotic-agent-path-planning-project,代码行数:33,代码来源:pathFinder.py

示例10: __init__

# 需要导入模块: from pandac.PandaModules import GeomNode [as 别名]
# 或者: from pandac.PandaModules.GeomNode import getDefaultCollideMask [as 别名]
    def __init__( self, _base, state):

        self.base = _base
        
        self.state = state


        # Create mouse
        base.disableMouse()
        self.mouse = gizmo_core.Mouse()
        self.mouse.Start()

        # Create camera
        self.camera = gizmo_core.Camera( pos=(-250, -250, 200), style=
                                  gizmo_core.CAM_USE_DEFAULT |
                                  gizmo_core.CAM_VIEWPORT_AXES )
        self.camera.Start()

        # Create grid
        grid = DirectGrid( parent=render, planeColor=(0.5, 0.5, 0.5, 0.5) )

        # Create scene root node
        self.rootNp = render.attachNewNode( 'rootNode' )

        # Create node picker
        self.nodePicker = gizmo_core.MousePicker( 'mouse', self.camera, self.rootNp, fromCollideMask=GeomNode.getDefaultCollideMask(), pickTag=PICK_TAG )
        self.nodePicker.Start()

        # Bind node picker events
        self.accept( 'mouse1', self.StartSelection )
        #self.accept( 'control-mouse1', self.StartSelection, [False] ) # Can't seem to get this to prioritise properly
        self.accept( 'mouse1-up', self.StopSelection )

        # Create gizmo manager
        self.gizmoMgr = gizmos.Manager()
        self.gizmoMgr.AddGizmo( gizmos.Translation( 'pos', self.camera ) )
        self.gizmoMgr.AddGizmo( gizmos.Rotation( 'rot', self.camera ) )
        self.gizmoMgr.AddGizmo( gizmos.Scale( 'scl', self.camera ) )

        # Bind gizmo manager events
        self.accept( 'q', self.gizmoMgr.SetActiveGizmo, [None] )
        self.accept( 'w', self.gizmoMgr.SetActiveGizmo, ['pos'] )
        self.accept( 'e', self.gizmoMgr.SetActiveGizmo, ['rot'] )
        self.accept( 'r', self.gizmoMgr.SetActiveGizmo, ['scl'] )
        self.accept( 'space', self.ToggleAllGizmoLocalMode )
        self.accept( '+', self.gizmoMgr.SetSize, [2] )
        self.accept( '-', self.gizmoMgr.SetSize, [0.5] )

        # Create gizmo manager mouse picker
        self.gizmoPicker = gizmo_core.MousePicker( 'mouse', self.camera )
        self.gizmoPicker.Start()

        '''# Create some objects
        for i in range( 20 ):
            ball = loader.loadModel( 'smiley' )
            ball.setTag( PICK_TAG, '1' )
            ball.reparentTo( self.rootNp )
            ball.setPos( random.randint( -30, 30 ) * 2, random.randint( -30, 30 ) * 2, random.randint( -30, 30 ) * 2 )
            ball.setScale( 10, 10, 10 )'''
        '''
        # Create a light
        dlight = DirectionalLight('dlight')
        dlight.setColor( ( 1, 1, 1, 1 ) )
        dlnp = render.attachNewNode(dlight)
        dlnp.setHpr(0, 0, 0)
        render.setLight(dlnp)
        dlnp.reparentTo( self.camera )'''

        # Create tasks
        taskMgr.add( self.MouseTask, 'mouseTask' )
开发者ID:MJ-meo-dmt,项目名称:RisingEditor,代码行数:72,代码来源:Gizmo_tools.py

示例11: __setupCollisionHandling

# 需要导入模块: from pandac.PandaModules import GeomNode [as 别名]
# 或者: from pandac.PandaModules.GeomNode import getDefaultCollideMask [as 别名]
    def __setupCollisionHandling(self, collisionHandler, collisionTraverser):
        if not collisionTraverser.getRespectPrevTransform():
            collisionTraverser.setRespectPrevTransform(True)

        # We do this so we don't take into account the actual model, but the collision sphere
        self.actor.setCollideMask(BitMask32.allOff())

        self.node().getPhysicsObject().setMass(self.massKg)
        base.physicsMgr.attachPhysicalNode(self.node())
        fromObject = self.attachNewNode(CollisionNode(self.name + " collision node"))
        fromObject.node().setIntoCollideMask(fromObject.node().getIntoCollideMask() & ~GeomNode.getDefaultCollideMask())
        fromObject.node().setFromCollideMask(self.collisionMask)
        fromObject.node().addSolid(CollisionSphere(0, 0, 2.5, 2.5))

        collisionHandler.addCollider(fromObject, self)
        collisionTraverser.addCollider(fromObject, collisionHandler)
开发者ID:Babi-Wan,项目名称:robotic-agent-path-planning-project,代码行数:18,代码来源:agent.py


注:本文中的pandac.PandaModules.GeomNode.getDefaultCollideMask方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。