我不能让QueryAABB在PyBox2D中工作。我究竟做错了什么?

时间:2016-10-06 21:08:22

标签: python python-3.x box2d

我正在尝试检测鼠标指针是否在身体上,所以我可以拖动它,但我得到下面的错误。我不知道这是我还是pybox2d中的一个错误,但我已经使用了几个小时而且文档很古老。

>>> from Box2D.b2 import *
>>> w = world()
>>> my_body = w.CreateDynamicBody(position=(1,1))
>>> aabb = AABB()
>>> aabb.lowerBound = (1-.001,1-.001)
>>> aabb.upperBound = (1+.001,1+.001)
>>> def callback(fixture):
...     shape = fixture.shape
...     p = (1,1)
...     if fixture.body.type != 0: # type 0 is static
...             if shape.TestPoint(fixture.body.transform,p):
...                     return False
...     return True
... 
>>> w.QueryAABB(callback,aabb)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: in method 'b2World_QueryAABB', argument 2 of type 'b2QueryCallback *'

显然,我希望查询返回True(没有检测到形状,继续查看),因为我没有为正文创建一个形状,但这并不能解释类型错误。请帮助,提前谢谢!

1 个答案:

答案 0 :(得分:0)

傻了,我想通了。就在'古代'文档中。

https://github.com/pybox2d/pybox2d/wiki/manual#aabb-queries