我正在尝试掌握花栗鼠的基础知识。在一些教程中,我发现了一行:
cpSpaceHashEach(space->activeShapes, &updateShape, nil);
但我在这里有两个错误:
1) 函数的隐式声明在 C99 中无效
2) 'struct cpSpace' 中没有名为 'activeShapes' 的成员
怎么了?为什么它不起作用?我需要包含其他内容吗?
我正在尝试掌握花栗鼠的基础知识。在一些教程中,我发现了一行:
cpSpaceHashEach(space->activeShapes, &updateShape, nil);
但我在这里有两个错误:
1) 函数的隐式声明在 C99 中无效
2) 'struct cpSpace' 中没有名为 'activeShapes' 的成员
怎么了?为什么它不起作用?我需要包含其他内容吗?
只是用一些代码澄清一下,以防其他人遇到这个问题,而不是
cpSpaceHashEach(space->activeShapes, &updateShape, nil);
你会使用:
cpSpaceEachShape(space, &updateShape, nil);
显然,这个更改已经完成,因此更容易保持代码面向未来,因为 activeShapes 不打算以这种方式使用。
深入了解变更日志:(https://github.com/slembcke/Chipmunk-Physics/blob/master/VERSION.txt)
如果您看一下,您会发现在 Chipmunk 5.x 中 cpSpace.*Shapes 在标头中被标记为 cpSpace 结构的私有成员。然后,在 Chipmunk 6.x 中,默认情况下禁用了私有访问,并且出现了一个 cpSpaceEachShape() 函数,它几乎完全取代了您尝试执行的 cpSpaceHashEach() + cpSpace.activeShapes。