gpt4 book ai didi

iphone - 将功能分离到类中,与世界对象通信(cocos2d/box2d)

转载 作者:行者123 更新时间:2023-11-29 13:35:17 25 4
gpt4 key购买 nike

我的世界在我的场景中与 Box2d 一起工作。基本上有几个球弹来弹去,一切都很好。

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

我猜这意味着我必须在 CCSprite 子类和 Layer 世界之间传递位置?如何去做这件事?谢谢

TLDR:如何将对象逻辑从 Layer 文件分离到外部文件?

最佳答案

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

关于iphone - 将功能分离到类中,与世界对象通信(cocos2d/box2d),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10728546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com