添加点到pymunk poly

时间:2012-08-14 15:14:15

标签: python chipmunk pymunk

我在Pymunk中创建多边形时遇到了一些麻烦。

import pymunk
space = pymunk.Space()
space.gravity = (0.0, 900.0)

box_points=[(-100,-100), (100,-100), (100,100), (-100, 100)]
body = pymunk.Body(10.0, 1000.0)
body.position = pymunk.Vec2d(300.0,300.0)
shape = pymunk.Poly(body, box_points, (0,0))

space.add(body, shape)

print shape.get_points()

# Outputs: [Vec2d(300.0, 300.0), Vec2d(300.0, 300.0), Vec2d(300.0, 300.0), Vec2d(300.0, 300.0)]

形状的顶点都在身体的中心! (即在(0,0))。我认为他们不应该,或者我正在跳过一些步骤?

我正在运行 Mac OS 10.7.4 ,使用 Chipmunk v6.0.2 Pymunk 2.1.0 ..这是一个错误?

1 个答案:

答案 0 :(得分:1)

看起来你偶然发现了花栗鼠中的32位编译错误。从10.6开始,Apple在其头文件中更改了预定义的定义,这只在OSX上的32位python上创建了一个bug。好消息是它已经在最新的pymunk svn trunk中得到修复。

花栗鼠论坛的完整详情:http://chipmunk-physics.net/forum/viewtopic.php?f=1&t=2265

get_points应返回世界坐标中的点,这意味着示例中的输出应为:

[Vec2d(200.0, 400.0), Vec2d(400.0, 400.0), Vec2d(400.0, 200.0), Vec2d(200.0, 200.0)]

(我希望尽快发布一个新版本的pymunk。我目前正在转换为sphinx的文档,但大部分已经完成了)