У меня есть код, который рисует фигуру, состоящую из нескольких многоугольников, используя pyBox2D и PyGame. Я определил тела и суставы, он работает хорошо, он делает то, что должен, но проблема возникает, когда я хочу изменить голову с многоугольника на форму круга, но я не могу нарисовать его, потому что я использую для рисования вершин, а форма круга имеет нет вершин.
Проблема возникает в этой части кода (окончательный чертеж):
for body in world.bodies: #(ground_body, dynamic_body): # or: world.bodies
# The body gives us the position and angle of its shapes
for fixture in body.fixtures:
shape = fixture.shape
vertices = [(body.transform * v) * PPM for v in shape.vertices]
vertices = [(v[0], SCREEN_HEIGHT - v[1]) for v in vertices]
pygame.draw.polygon(screen, colors[body.type], vertices)
Как я уже говорил выше, проблема в том, что box2D. У b2circleShape нет вершин. Как я могу нарисовать круг или рекламные вершины к этой форме?
Большое спасибо
РЕДАКТИРОВАТЬ: "Дубликат" не отвечает на мой вопрос, не могли бы вы показать мне, как определить круговое тело, я попробовал это
import Box2D # The main library
# Box2D.b2 maps Box2D.b2Vec2 to vec2 (and so on)
from Box2D.b2 import (world, polygonShape, staticBody, dynamicBody, circleShape)
from Box2D import (b2FixtureDef, b2PolygonShape, b2CircleShape)
chest_body = world.CreateDynamicBody(
position=(10, 6.5),
fixtures=b2FixtureDef(
shape=b2PolygonShape(box=(0.5, 1.5)), density=120),
angle=0) # This is a rectangular body which is defined correctly
circle = world.CreateDynamicBody(
position=(10, 6.5),
fixtures=b2FixtureDef(
shape=b2CircleShape(0.5),
angle=0)) # I tried this after checking your manual, this does not work
Проблема может быть вызвана (и, вероятно, вызвана) тем, что я не знаю, как запустить IntelliSense для pyBox2D или вообще существует ли intellisense. Это означает, что я не знаю, какие параметры необходимы
Любая помощь приветствуется