1

我一直在使用捆绑的 Cocos2d V1 和 Box2d。我正在尝试更新到 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'

我已经尝试解决这个问题两天了,但没有成功。

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

任何指针?

4

1 回答 1

2

也许您忘记将 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

于 2012-05-26T11:02:34.013 回答