Chipmunk2D 7.X中cpPolyShapeGetNumVerts函数移除后的替代方案咨询
Chipmunk2D 7.X中cpPolyShapeGetNumVerts函数移除后的替代方案咨询
嘿,刚好对Chipmunk2D 7.X的这个API变更熟得很,给你说下怎么替代~
在7.X版本里,官方把cpPolyShapeGetNumVerts这类单个属性的getter函数都移除了,换成了直接访问结构体成员的方式,简单又高效。你只需要这么做:
- 首先确保你要操作的形状确实是多边形形状,可以用
cpShapeGetType()来判断类型 - 把
cpShape指针强转为cpPolyShape*类型 - 直接访问它的
count成员变量,这就是原来cpPolyShapeGetNumVerts返回的顶点数量啦
给你贴个实际代码示例参考:
// 假设你已经有一个cpShape对象 cpShape *targetShape = ...; // 先判断是不是多边形形状 if (cpShapeGetType(targetShape) == CP_SHAPE_POLY) { cpPolyShape *polyShape = (cpPolyShape*)targetShape; int vertexCount = polyShape->count; // 接下来就可以用vertexCount做你需要的操作了 }
这种直接访问成员的方式是7.X版本官方推荐的做法,不仅省去了函数调用的开销,代码读起来也更直观哦。
备注:内容来源于stack exchange,提问作者Rodrigo
相关产品推荐
相关产品推荐

