Есть ли способ изменить размер формы в pymunk, сохраняя при этом согласованное физическое поведение? ⇐ Python

Программы на Python
Anonymous
Есть ли способ изменить размер формы в pymunk, сохраняя при этом согласованное физическое поведение?

Сообщение Anonymous »

Как сказано в заголовке, я не понимаю, как изменить размер формы пимунка, не столкнувшись со странным физическим поведением.
Посмотрите на GIF, чтобы понять, какое у меня поведение говорю о
Единственных известных мне способов изменить размер фигуры - это два:
  • путем удаления и воссоздания фигуры в новом желаемом размере
  • или с помощью методов unsafe_setter для изменения данных формы
Оба способа воспроизводят тот же противоречивый результат. Для объектов, движущихся перпендикулярно или около того против формы, результат приемлемый, для остальных, к сожалению, нет. Мне совершенно ясно, почему эти два решения не могут воспроизвести согласованное физическое поведение, но я не могу поверить, что невозможно соответствующим образом изменить размер этих форм. Я определенно что-то упускаю.
Сейчас я использую unsafe_setters, поскольку полагаю, что они незначительно влияют на производительность. Вместо этого с помощью этого кода я получаю плавный переход от текущего_размера к новому размеру.

Код: Выделить всё

def update(self, delta):
super().update(delta)

if self.current_size != self.size:
self.current_size = pygame.math.Vector2.lerp(self.current_size, self.size, self.lerp_factor)
if self.current_size == self.size: self.resize_surface(self.current_size)
self.update_class_shape()
self.draw()
Если вы знаете способ добиться лучшего результата, я буду рад его прочитать.

Подробнее здесь: https://stackoverflow.com/questions/790 ... nt-physics

Вернуться в «Python»