基本对象如何控制Pandas3d中的摄影机

2024-04-28 23:42:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在玩着在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),我不知道它在哪里看。在

为什么会这样?在


Tags: 代码pos引擎selfaddinitdefpass
1条回答
网友
1楼 · 发布于 2024-04-28 23:42:05

这是因为Panda3D有一个默认的摄像机控件(默认摄像机驱动程序),如果你不调用disableMouse(),Panda3D将不会通过调用camera.set_pos(x, y, z)来移动相机,而只允许在手册中读到的指定控件here和{a2}。在

如果您想通过代码将您的相机放置在(0, 0, 0)以外的任何地方,则必须编写自己的摄影机控制器,或者仅使用上面链接中指示的控件在场景中移动。在

相关问题 更多 >