对于我的一个课程,我制作了一个javascript游戏,其中包含跳转到屏幕随机部分的字符。我正在尝试将此游戏转换为Swift(我在编码方面非常糟糕,这是我第三天使用Swift)。
我得到了角色(SKSpriteNode)在屏幕上反弹的部分。但出于某种原因,我一直在努力画线。我尝试使用UIBezierPath()& CAShapeLayer()。我也尝试了一个SKSpriteNode。
但是我还没有能够在角色的原点和终点之间以适当的角度画一条线。因为角色移动到随机点,角度一直在变化,线的大小也需要改变。
这是Javascript游戏的图片:
答案 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()
函数中调用此函数,以便在玩家或敌人移动时重新创建该行。