我有一个box2d主体数组,像这样初始化:
b2Body *touchedBodies[10];
我需要用几个b2Bodies填充它,我想将下一个b2Body设置到第一个可用位置-我尚未放置b2Body的位置。所以我正在寻找这样的东西:
touchedBodies[touchedBodies->firstOpenSpot()] = someB2Body;
那可能吗?
最佳答案
您可以使用动态容器(例如Vector)。
您可以存储最后插入的元素的索引。
// sample without failsave
int openSpot = 0;
touchedBodies[openSpot] = someB2Body;
openSpot++;
您可以使用nullpointer初始化此数组,然后进行遍历。
// sample without failsave
for (int i=0; i < 10; i++) {
if (touchedBodies[i] != 0) continue;
touchedBodies[i] = someB2Body;
break;
}