0

我真的坚持用 Box2D 实现包装世界。我想创建从左侧出现的游戏对象,当它隐藏到右侧时,反之亦然,自上而下也是如此。

我的想法是使用包含具有 9 个元素的 NSArray 的对象作为叠加矩阵(当对象同时存在于不同位置时,它是一种量子状态,不是吗?)。

每个元素都必须包含主体。它涵盖了所有情况,对我来说有更清晰的逻辑。例如,如果我的对象不接触任何边缘,它只包含一个“中心”主体(第 4 个元素)。如果它触及右边缘,我将“左扭曲”主体添加到第三个元素。

主要问题是在不增加世界的情况下创造身体。首先,我必须将它添加到数组中,然后安全地处理添加到

world->Step();

例如……在碰撞逻辑中(伪代码)

[self.bodies addObjectAtIndex:index] = [self masterBody];

在哪里

-(b2Body*)masterBody;

返回对象主体的模板(主副本)。但是我不能写这个方法,因为只有一个

world->CreateBody(&bodyDef);

方法,我必须用它来创建固定装置。

我只能单独创建身体的定义,但如果不将其添加到世界,就无法进行完整的创建(带有固定装置)。但是添加到世界必须在物理步骤之外进行处理。

有任何想法吗?使用单独的世界来存储每个游戏对象的模板主体?

4

0 回答 0