0

我有一个 box2d 体数组,初始化如下:

b2Body *touchedBodies[10];

我需要用几个 b2Body 填充它,并且我想将下一个 b2Body 设置到第一个可用的地方——我还没有放置 b2Body 的地方。所以我正在寻找这样的东西:

touchedBodies[touchedBodies->firstOpenSpot()] = someB2Body;

那可能吗?

4

2 回答 2

1

您可以使用像 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;
}
于 2013-05-23T15:41:38.000 回答
0

介绍一个counttouchedBodies或者,最初用 0填充,然后firstOpenSpot()搜索第一个 0。确保添加防止运行超出大小的逻辑(例如,使用sizeof或分离逻辑/变量)。

于 2013-05-23T15:38:08.203 回答