我有一个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;
}

10-04 14:26