
16
|
第
1
章
findComponent
方法和
findComponents
方法需要说明一下。这两个方法的目的
是获取该游戏对象所包含的单个组件或者组件数组。它们都采用了泛型返回
值,以保证返回的对象与期望的一致。同时,我们也不需要进行强制类型转
换,用这种方法能够保证方法所返回的对象都是正确的类型。
1.4
用
GameplayKit
创建基于组件的游戏设计
问题
你想在游戏中使用基于组件的设计(参考
1.3
节),但你不想自己编写组件系统。
解决方案
你可以用
GameplayKit
的
GKEntity
和
GKComponent
类来实现“实体—组件式”的
游戏架构。
要使用这两个类,需要在代码中引入
GameplayKit
框架:
import GameplayKit
然后,继承
GKComponent
类,实现组件所需的行为,比如它的可视化表示:
//
两个组件的例子
class GraphicsComponent:GKComponent{
override func update(deltaTime seconds:TimeInterval){
print("Drawing graphics!")
}
}
class PhysicsComponent:GKComponent{
override func update(deltaTime seconds:TimeInterval){
print("Simulating physics!")
}
}
定义完组件之后,就可以创建实体并将组件附着上去 ...