Pymunk:用限位关节连续旋转电机(前进然后后退)

问题描述 投票:0回答:0

如何旋转连接到另一段的段但限制旋转角度。因此,例如,如果我有一个静态部分和另一个与枢轴关节连接并使用简单电机旋转的动态部分。电机做一整圈,但我只希望动态部分连续地从某一点移动到另一点。我的目标是制作一只行走的动物,让腿来回移动。我怎样才能做到这一点?

这就是我现在拥有的:

seg1= Segment((100, 100), (100, 200), 10, True, True, (0, 255, 0, 0))    # density=10, static, filter, green
seg2= Segment((100, 200), (100, 300), 10, False, True, (255, 0, 0, 0))     # dynamic, filer, red

PivotJoint(seg1.body, seg2.body, (100, 200), (100, 200))
SimpleMotor(seg1.body, seg2.body, 1)
RotaryLimitJoint(seg1.body, seg2.body, -pi, pi)

在这里,我希望 seg2 从 (0, 200) 到 (200, 200) 来回移动。我知道将速率更改为负值会使段向后旋转,但是当我在 draw() 函数中执行此操作时它似乎没有改变,如下所示:

    def draw(self):
        self.screen.fill(GRAY)
        space.debug_draw(self.draw_options)
        pygame.display.update()

        self.rate = self.rate*(-1)                       # going from 1 to -1 continuously
        self.motor.rate = self.rate

        text = f'fpg: {self.clock.get_fps():.1f}'
        pygame.display.set_caption(text)
python chipmunk pymunk
© www.soinside.com 2019 - 2024. All rights reserved.