Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Box2D和包装世界_Iphone_Objective C_Box2d_Game Physics_Box2d Iphone - Fatal编程技术网

Iphone Box2D和包装世界

Iphone Box2D和包装世界,iphone,objective-c,box2d,game-physics,box2d-iphone,Iphone,Objective C,Box2d,Game Physics,Box2d Iphone,我真的坚持用Box2D实现包装世界。我想创建一个从左到右隐藏的游戏对象,反之亦然,自上而下也是如此 我的想法是使用包含9个元素的NSArray的对象作为叠加矩阵(当对象同时存在于不同位置时,它是一个量子态,不是吗?) 每个元素都必须包含主体。它涵盖了所有情况,对我来说有一个更清晰的逻辑。例如,如果我的对象不接触任何边,它只保留一个“中心”实体(第四个元素)。若它接触到右边缘,我会将“左扭曲”的身体添加到第三个元素中 主要的问题是创造身体而不增加世界。首先,我必须将它添加到数组中,然后在外部安全地

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

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

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

主要的问题是创造身体而不增加世界。首先,我必须将它添加到数组中,然后在外部安全地进行添加

world->Step();
例如…在冲突逻辑(伪代码)中

在哪里

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

world->CreateBody(&bodyDef);
方法,我必须使用它来创建设备

我只能单独创建实体的定义,但如果不将实体添加到世界中,则无法创建完整的实体(带有固定装置)。但是,除了物理步骤外,还必须对世界进行处理


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

如果您的问题是无法在碰撞回调中创建新主体,那么您必须在逻辑中的某个位置存储有关您要在Step()函数终止后创建和创建的主体的信息。确切地说,但除了另一个世界和从一个世界复制到另一个世界之外,我看不到任何方法可以将它存储在其他地方。我甚至无法想象如何复制。不要保存尸体。存储创建所需的信息。例如:位置、类型、速度我需要创建一个实体来模拟物理。所有这些参数都应该由发动机来处理。还有一件事,我需要同步叠加系统中身体之间的所有脉冲。你不能在Step()函数中创建b2Body。您应该在函数终止后创建它
-(b2Body*)masterBody;
world->CreateBody(&bodyDef);