我有一个 box2d 体数组,初始化如下:
b2Body *touchedBodies[10];
我需要用几个 b2Body 填充它,并且我想将下一个 b2Body 设置到第一个可用的地方——我还没有放置 b2Body 的地方。所以我正在寻找这样的东西:
touchedBodies[touchedBodies->firstOpenSpot()] = someB2Body;
那可能吗?
我有一个 box2d 体数组,初始化如下:
b2Body *touchedBodies[10];
我需要用几个 b2Body 填充它,并且我想将下一个 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;
}
介绍一个count
。touchedBodies
或者,最初用 0填充,然后firstOpenSpot()
搜索第一个 0。确保添加防止运行超出大小的逻辑(例如,使用sizeof
或分离逻辑/变量)。