2017-06-25 36 views
2
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)) 
} 

我还在学习CGPaths,我的这段代码的目标是让僵尸移动到0,0点。目前僵尸产卵,只是坐落在它产生的地方。我不想使用moveTo,因为僵尸可能会被某些东西阻塞,所以我想让僵尸以一定的速度移动,而不是在一定的时间内达到某个点。任何关于如何正确使用CGPath的建议,或者我可以改变以实现目标的建议?我很新的这所以请尊重我的判断代码:)SpriteKit CGPath和SpriteMovement

回答

1

试试这个(未测试):

替换该行

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

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

于是你开始僵尸的当前位置的路径,然后从该位置添加一条线到僵尸的预期位置。

希望这会有所帮助!

+0

起初它没有工作,但后来我用asOffset = false运行了你的代码,它工作。谢谢!我会投票你的答案,但显然我没有足够的声誉。 –

+0

@ B.Toaster你仍然可以通过选中标记来回答这个问题:) – Fluidity