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)
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)以外的任何位置,则必须编写自己的相机控制器,或者只使用上面链接中指示的控件在场景中移动。

相关内容

  • 没有找到相关文章

最新更新