Как сделать статическую прямоугольную форму в pymunk?

#python #pygame #game-physics #physics #pymunk

Вопрос:

Мой вопрос довольно прост, я просто хочу знать, как создать статическое тело, представляющее собой прямоугольник, с помощью pymunk. Я попытался прочитать документы и узнать о сегментах, но не смог этого понять. Так что любая помощь очень ценна !

Ответ №1:

Либо вы можете использовать статическое тело, уже прикрепленное к Пространству, либо создать новое. Чтобы создать прямоугольник, либо вы предоставляете углы конструктору Poly (как показано ниже), либо используете сокращенный метод Poly.create_box.

 space = pymunk.Space()
rectangle = pymunk.Poly(space.static_body, [(10,10),(20,10),(20,15),(10,15)])
space.add(rectangle)
 

Обратите внимание, что статические тела не должны перемещаться после того, как они были добавлены в пространство. Поэтому, если вам нужно переместить прямоугольник, вместо этого вы можете использовать кинематическое тело.

Комментарии:

1. Спасибо, чувак, что это работает ! Я также обнаружил, что вы можете использовать другой способ, который я опубликовал ниже.

Ответ №2:

метод вибло работает. А также это

 def create_rectangle_static(space,pos_x,pos_y,width,height):

    body = pymunk.Body(body_type=pymunk.Body.STATIC)
    
    body.position = (pos_x,pos_y)
    shape = pymunk.Poly.create_box(body,(width,height))
    space.add(body,shape)