GameplayKit GKGoal:无法徘徊工作

时间:2017-08-11 02:10:14

标签: swift gameplay-kit

尝试学习如何使用GameplayKit,特别是代理商&行为。尝试将所有教程和示例归结为一小段简单的代码,我可以将其用作我自己的应用程序的起点。不幸的是,我提出的并不能正常工作,我无法弄清楚原因。它只是一个带有简单GKGoal(toWander :)的简单精灵。而不是徘徊,它只是直线向右移动,永远。尽管我设定了最大速度和速度,它也开始不可能缓慢地加速并且速度不可能慢。加速到荒谬的高价值。我无法弄清楚我的简单代码和所有复杂的例子之间的根本区别。这是代码,减去required init?(coder aDecoder: NSCoder)

class GremlinAgent: GKAgent2D {
    override init() {
        super.init()

        maxAcceleration = 100000
        maxSpeed = 1000000
        radius = 20
    }

    override func update(deltaTime seconds: TimeInterval) {
        super.update(deltaTime: seconds)
        let goal = GKGoal(toWander: 100)
        behavior = GKBehavior(goal: goal, weight: 1)
    }
}

class Gremlin: GKEntity {
    let sprite: SKShapeNode

    init(scene: GameScene) {
        sprite = SKShapeNode(circleOfRadius: 20)
        sprite.fillColor = .blue

        scene.addChild(sprite)

        super.init()

        let agent = GremlinAgent()
        addComponent(agent)

        let node = GKSKNodeComponent(node: sprite)
        addComponent(node)
        agent.delegate = node
    }
}

在GameScene.swift中,didMove(to view:)

let gremlin = Gremlin(scene: self)
entities.append(gremlin)

任何人都可以帮助我吗?

0 个答案:

没有答案