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