使用 traverse() 在 Panda3D 中处理碰撞

Collision handeling in Panda3D with traverse()

我是 Panda3d 的新手,我正在使用一些 'roaming ralph' 代码来检查碰撞:

在panda3d附带的'roaming ralph'代码示例中,它说

    # Normally, we would have to call traverse() to check for collisions.
    # However, the class ShowBase that we inherit from has a task to do
    # this for us, if we assign a CollisionTraverser to self.cTrav.

我用的是普通版的Showbase,怎么调用

    traverse()

就像它说的那样?

意思是如果将CollisionTraverser实例赋值给base.cTrav,或者self.cTrav,就不需要每帧都调用traverse函数了。确实,漫游拉尔夫程序就是这样。

如果不是这种情况,例如,如果您将变量重命名为 self.traverser,则必须向任务(例如现有移动任务)添加这样一行:

self.traverser.traverse(self.render)