Apple Engine

Apple, iPhone, iOS, その周辺のことについて

WWDC 2017 の SceneKit サンプル Fox 2 を調べる その19

今回は、PlayerComponent.swift を見てゆく。
中身は Character クラスを取得する変数と update の変数があるだけ。

 

PlayerComponent クラスの中身

import GameplayKit

class PlayerComponent: BaseComponent {
    public var character: Character!

    override func update(deltaTime seconds: TimeInterval) {
        positionAgentFromNode()
        super.update(deltaTime: seconds)
    }
}

 

public var character: Character!

PlayerComponent のメンバ変数として character が設定されている。
character は ChaserComponent、ScaredComponent でプレイヤーキャラクター Max が敵キャラへ攻撃、接触した際に位置から方向を取得する際に使用している。

 

override func update(deltaTime seconds: TimeInterval)

BaseComponent の update 関数をオーバーライドしている。 変更した中身は BaseComponent の関数 positionAgentFromNode() でagent の transform に node の simdTransform を渡している。

ChaserComponent や ScaredComponent で GKBehavior の計算を行うため。

 

次回は ChaserComponent.swift を見てゆく。