2012-08-14 64 views
0

我在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,使用花栗鼠V6.0.2Pymunk 2.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很快,我正在转换到狮身人面像文件,但大部分已经完成)

+0

太棒了!谢谢! – noio 2012-08-15 11:09:55