我是GameplayKit的新手,因为大多数人都有使用期限,并且一直在尝试找出以下内容。

我有一个SKNode *enemy,已经从工作,样式,习惯等方面进行了大量的工作和自定义,全部来自SpriteKit。我的问题是这样的:


如何将我的敌人节点“链接”到GKAgent2D,以控制该节点的运动?


我知道您必须创建一个GKComponent并用一个Sprite Node(可能具有一定的选择纹理)来表示此组件。但是我想知道是否有一种方法可以使用GameplayKit在已经存在的节点上提供的内置“控制运动”方法。如果答案为“否”,请这么说并解释为什么?感谢您的帮助。谢谢!

最佳答案

您的敌人是GKEntity吗?如果不是,我相信您不能向其添加GKComponent。

如果您的敌人是GKEntity,则只需添加GKComponent作为代理即可。否则,您将不得不更改您的敌人类别,使其成为GKEntity。

苹果在DemoBots中的操作方式是创建一个类

class AgentComponent: GKAgent2D { }


(GKagent是GKComponent的子类,因此就像添加组件一样)

比实体他们需要代理商更多

class Enemy: GKEntity ...

let agentComponent = AgentComponent()
    agentComponent.delegate = self
    agentComponent.radius = Float(texture.size().width * 0.3)
    addComponent(agentComponent)


然后设置代表

agentDidUpdate

angentWillUpdate


这些是关于此的一些很好的教程

http://www.raywenderlich.com/119959/gameplaykit-tutorial-entity-component-system-agents-goals-behaviors

http://code.tutsplus.com/tutorials/an-introduction-to-gameplaykit-part-1--cms-24483

关于ios - 将SKNode链接到GKAgent2D?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35737536/

10-11 19:54