3
votes
func zombieAI() {
    let zombieGreen = SKSpriteNode(imageNamed: "Zombie")
    zombieGreen.setScale(0.3)
    zombieGreen.zPosition = 3
    zombieGreen.physicsBody?.affectedByGravity = false //change this later
    zombieGreen.position = CGPoint(x: 200, y: 200)
    self.addChild(zombieGreen)
    let goToTurret = CGMutablePath()
    goToTurret.move(to: CGPoint(x: 0, y: 0))
    zombieGreen.run(SKAction.follow(goToTurret, speed: 1.0))
}

I am still learning about CGPaths and my objective of this code was to make the zombie move to the point 0,0. Currently the zombie spawns and just sits where it spawned. I didn't want to use moveTo, which I am more comfortable with, because the zombie may be obstructed by something, so I want the zombie to move at a speed rather than getting to the point in a certain amount of time. Any suggestions on how to use the CGPath correctly or what I could change to achieve my goal? I am very new to this so please respectfully judge my code :)

1

1 Answers

2
votes

Try this (not tested):

Replace this line

 goToTurret.move(to: CGPoint(x: 0, y: 0))

with

goToTurret.move(to: zombieGreen.position)
goToTurret.addLine(to: CGPoint(x: 0, y: 0))

So you start the path off with the zombie's current position, then add a line from that position to the zombie's intended position.

Hope this helps!