Python 基础对象如何在Panda3d中控制摄影机

Python 基础对象如何在Panda3d中控制摄影机,python,panda3d,Python,Panda3d,我当时正在玩在Panda3d引擎中创建自定义几何体的游戏。下一个代码100%正确 class FooBarTriangle(ShowBase): def __init__(self): super(self).__init__() self.disable_mouse() self.set_frame_rate_meter(True) self.accept("escape", sys.exit) sel

我当时正在玩在Panda3d引擎中创建自定义几何体的游戏。下一个代码100%正确

class FooBarTriangle(ShowBase):
    def __init__(self):
        super(self).__init__()

        self.disable_mouse()
        self.set_frame_rate_meter(True)

        self.accept("escape", sys.exit)
        self.accept("space", lambda: print(self.camera.get_pos()))
        self.camera.set_pos(0, 0, 10)
        self.camera.look_at(0, 0, 0)

        self._add_light()
        self._add_triangle()


    def _add_light(self):
        # Adds a point light
        pass

    def _add_triangle(self):
        # Adds a single triangle in a certain place
        pass
当我从代码中删除
base.disableMouse()
时,会发生一些神秘的事情。我希望我的相机是可移动的,并出现在(0,0,10)的位置,看着(0,0,0)。但是,取而代之的是,相机处于(0,0,0)的位置,我不知道它看起来在哪里


为什么会发生这种情况?

之所以会发生这种情况,是因为Panda3D有一个默认的摄像头控件(默认的摄像头驱动程序),如果您不调用
disableMouse()
,Panda3D将不会通过调用
camera.set_pos(x,y,z)
,移动您的摄像头,但仅允许通过指定的控制装置移动,如手册中所示

如果希望能够通过代码将相机放置在
(0,0,0)
以外的任何位置,则必须编写自己的相机控制器,或者只需使用上面链接上指示的控件在场景中移动即可