1

我的世界使用 Box2d 在我的场景中工作。基本上几个球弹跳起来,一切都很花哨。

但是,我想添加拖放球的功能。我已经可以使用 Cocos2D 中的静态精灵来实现这一点。现在使用 Box2D,而不是将代码保留在图层文件中,我想将其移动到 CCSprite 子类(所有触摸手势等)

这意味着我必须在 CCSprite 子类和我猜的 Layer 世界之间交流位置?如何做到这一点?谢谢

TLDR:您如何将层文件中的对象逻辑与外部文件分开?

4

1 回答 1

1

有很多方法可以做你想做的事。我是这样做的:在我的游戏中,我有 gameController - NSObject 的子类。在它的init方法,我正在创建更多控制器:第一个 - 用于显示 Box2d 对象,第二个 - 用于显示控件。如果我的任何对象需要告诉另一个对象任何事件(例如 2 个特定 b2Bodies 之间的碰撞),它会告诉它的所有者控制器(通过指针),在它的父控制器上引发这个事件,在他的父控制器上引发它父母和他所有的孩子控制器,等等。例如:我正在点击一个节点。所有用于点击、拖动等的逻辑都在它的​​控制器类中。然后,控制该节点的控制器触发事件​​,并且所有其他控制器都知道这一点,因此他们可以对什么做 anutig,或者什么也不做。在这种情况下,我的 box2dController 收到此消息并创建/移动 b2Bodies。

于 2012-05-24T08:14:20.153 回答