SpriteKit CGPath and SpriteMovement

3
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或者我可以改变什么来实现我的目标的建议?我对此非常新手,请友善地评价我的代码:)

1个回答

2
尝试这个(未测试):

替换此行

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

使用

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

所以,你可以从僵尸当前的位置开始,然后添加一条线从该位置到僵尸预期的位置。

希望这有所帮助!


起初它不起作用,但是我使用asOffset = false运行了您的代码,然后它就起作用了。谢谢!我会给您的答案点赞,但显然我没有足够的声望。 - B.Toaster
@B.Toaster,您仍然可以通过选中复选框将此问题标记为已解答 :) - Fluidity

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接