GKComponent
创建具有明确功能的实体对象父类。
概括
GKComponent是组建实体组件方式游戏的组件基类,在这个游戏设计结构中,实体是游戏相关的对象,而组件则处理实体的特定行为方式。由于组件的功能范围有限,所以可以为许多不同类型的实体重用相同的组件类。
创建组件时,通过继承可复用部分进行子类化创建,然后创建GKEntity并使用addComponent:方法进行组件捆绑。
在runtime运行时,基于组件开发的游戏需要周期性调用逻辑方法,所以我们可以使用update/render loop相关方法,比如Spritekit中的update:方法或SceneKit中的renderer: updateAtTime:方法,或基于CADisplayLink的timer自定义一个渲染器为每一个组件进行更新。Gameplaykit提供了两种机制去调用update更新:
• 实体:调用每个实体的updateWithDeltaTime:方法,去更新每一个组件,如果游戏中实体和组件较少,这个方法会很快速。
• 组件:通过GKComponentSystem来处理特定的组件类实例,当你调用updateWithDeltaTime:方法时,它会更新它所管理的所有组件。因为一个组件系统(GKComponentSystem)不需要了解你的游戏层次结构,这个功能可以很好地在复杂的对象关系中运行。
Topics
定时更新(Performing Periodic Updates)
- updateWithDeltaTime:
执行子类中定时更新的自定义方法。
相对于实体的方法(Working with Entities)
entity
组件的实体。
- didAddToEntity
当组件被添加到实体中时调用。
- willRemoveFromEntity
当组件将要从实体中删除时调用。
关系
继承
NSObject
默认遵守
NSCoding, NSCopying