0

我是新手,GameplayKit因为大多数人都有它的寿命,并且一直在试图弄清楚以下内容..

我有一个SKNode *enemy已经从运动到风格、习惯等进行了相当多的工作和定制。所有这些都来自SpriteKit. 我的问题是这样的:

  • 如何将我的敌人节点“链接”到 aGKAgent2D以便它控制该节点的移动?

我知道您必须创建一个GKComponent并使用 Sprite 节点来表示该组件,也许可以选择特定的纹理。GameplayKit但我想知道是否有一种方法可以使用在现有节点上提供的内置“控制移动”方法。如果答案是“否”,请直接说出来并解释为什么?我很感激任何帮助。谢谢!

4

1 回答 1

1

你的敌人是 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

于 2016-03-02T12:35:10.850 回答