所以 Panda3D 有这个选项可以通过使用参数“bakeInStart”来更新 Lerp 区间的起始位置,如果我们将它设置为 0。但是,我找不到解决这个问题的解决方案,即更新结束 HPR (偏航,俯仰,滚动)值每次有 Lerp 间隔循环的新迭代。我已经设法解决这个问题以获得预期的效果,但是必须编写整个屏幕的代码(因为按顺序编写了多个间隔)。到目前为止,我已经尝试过以最小化代码:
self.rotateTargets(0)
def rotateTargets(self, angle):
# Create Lerp intervals for each target orbit node to rotate all of the targets
# in a parallel sequence with easing
self.angle = angle
self.rotateTargets = Sequence(
Parallel(
LerpHprInterval(self.orbitNodes["orbit0"], 4, Point3(0, 0, self.angle+90), blendType = "easeInOut", bakeInStart = 0),
name = "rotateTargets0"), Func(self.targetReparent(self.orbitNodes["orbit0"].getR()))
self.rotateTargets.loop()
def targetReparent(self, newAngle):
# Define new angle
self.newAngle = newAngle
self.angle = self.newAngle
控制台出现断言错误,但与导入的函数有关,与我的代码无关。