1

我正在尝试掌握花栗鼠的基础知识。在一些教程中,我发现了一行:

cpSpaceHashEach(space->activeShapes, &updateShape, nil);

但我在这里有两个错误:

1) 函数的隐式声明在 C99 中无效

2) 'struct cpSpace' 中没有名为 'activeShapes' 的成员

怎么了?为什么它不起作用?我需要包含其他内容吗?

4

2 回答 2

5

只是用一些代码澄清一下,以防其他人遇到这个问题,而不是

cpSpaceHashEach(space->activeShapes, &updateShape, nil); 

你会使用:

cpSpaceEachShape(space, &updateShape, nil);

显然,这个更改已经完成,因此更容易保持代码面向未来,因为 activeShapes 不打算以这种方式使用。

于 2011-12-29T03:46:59.220 回答
4

深入了解变更日志:(https://github.com/slembcke/Chipmunk-Physics/blob/master/VERSION.txt)

如果您看一下,您会发现在 Chipmunk 5.x 中 cpSpace.*Shapes 在标头中被标记为 cpSpace 结构的私有成员。然后,在 Chipmunk 6.x 中,默认情况下禁用了私有访问,并且出现了一个 cpSpaceEachShape() 函数,它几乎完全取代了您尝试执行的 cpSpaceHashEach() + cpSpace.activeShapes。

于 2011-10-16T03:18:37.530 回答