目前,我使用SKPhysicsContact从GameScene内部触发我的精灵的行为改变。问题是随着每一个发展,游戏场景变得越来越长。是否有人成功地制作了一个嵌入了GKComponent的SKPhysics,从而简化了联系人管理?这怎么做呢?
发布于 2016-01-15 19:38:14
在实体组件体系结构中,由于单一的调度点(物理世界的联系人代表),冲突处理很难处理。但是,您可以使用这一点来排序涉及的实体,并将联系人消息分派给正确的组件。
苹果的DemoBots样本代码有一个例子。下面简要介绍一下他们是如何做到这一点的:
EntityNode,它向节点的拥有实体(GKEntity或某些子类)添加一个反向引用。didBeginContact中,分类联系人是否需要处理以及由谁来处理。DemoBots通过创建一个ColliderType结构来实现这一点,该结构有助于将位掩码抽象为“A类型想要与B类型碰撞/通知联系人吗?”各种各样的问题。DemoBots使用一组自定义实体类,并在每个类中处理联系人。您还可以使用更少的实体类,并在组件中处理联系人--在这种情况下,上面的步骤3将涉及查找碰撞实体上的ContactComponent (或您称之为它的任何东西)并向它们发送消息。
https://stackoverflow.com/questions/34812188
复制相似问题