如何使用Swift 3在SpriteKit中绘制一条线?

时间:2018-01-09 06:25:52

标签: swift sprite-kit

对于我的一个课程,我制作了一个javascript游戏,其中包含跳转到屏幕随机部分的字符。我正在尝试将此游戏转换为Swift(我在编码方面非常糟糕,这是我第三天使用Swift)。

我得到了角色(SKSpriteNode)在屏幕上反弹的部分。但出于某种原因,我一直在努力画线。我尝试使用UIBezierPath()& CAShapeLayer()。我也尝试了一个SKSpriteNode。

但是我还没有能够在角色的原点和终点之间以适当的角度画一条线。因为角色移动到随机点,角度一直在变化,线的大小也需要改变。

这是Javascript游戏的图片:

image

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

var line = SKShapeNode()

func drawLine(from: CGPoint, to: CGPoint){
    line.removeFromParent()
    let path = CGMutablePath()
    path.move(to: from)
    path.addLine(to: to)
    line = SKShapeNode(path: path)
    self.addChild(line)
}

override func update(_ currentTime: TimeInterval) {
    drawLine(from: player.position, to: enemy.position)
}

在此创建路径并通过path.move(to:)向其添加起始点。然后使用path.addLine(to:)向您的其他点添加一行。然后使用SKShapeNode(path:CGPath)初始值设定项从路径创建SKShapeNode。 SKShapeNode将在场景中显示您的线条。最后,只需通过addChild()将您的节点添加到场景中,并在update()函数中调用此函数,以便在玩家或敌人移动时重新创建该行。