我一直在使用捆绑在一起的Cocos2d V1和Box2d。
我正在尝试更新Box2d V2.2.1的较新版本。

我已经将Gles-Render.h和Gles-Render.mm更新到最新版本,我进行了一些更改,以消除除一个错误之外的所有错误。

debugDraw = new b2Draw();
world->SetDebugDraw(debugDraw);
debugDraw->SetFlags(b2Draw::e_shapeBit);

我得到错误:
ERROR: allocating an object of abstract type 'b2Draw'

我已经尝试修复了两天,但没有成功。

任何机构对此都有解决方案吗?

任何指针?

最佳答案

也许您忘记了将b2Draw类添加到您的项目中。另外,我认为您不应该使用b2Draw而是GLESDebugDraw。至少与我合作的项目使用GLES-Render文件,其中定义了一个GLESDebugDraw类,该类派生自b2Draw(在Box2D v2.1中我将其命名为b2DebugDraw)。

class GLESDebugDraw : public b2Draw

如有疑问,请使用其他人的GLES-Render文件。您可以从Kobold2D获得可用于Box2D v2.2的软件:

GLES-Render.h
GLES-Render.mm

10-06 01:34