Я пытаюсь создать путь между двумя планетами, у меня нет ошибки компиляции, но я не понимаю, почему на моем симуляторе ничего не появляется - PullRequest
0 голосов
/ 25 марта 2019

Я создаю мобильную съемочную видеоигру, я хотел бы создать линию между каждой планетой (всего 8 планет), чтобы сформировать путь, но я не понимаю, почему моя линия не появляется.Вот мой код: я хочу сказать, что я начинаю в Swift и Spritekit. вот скриншот

let bezierPath = UIBezierPath()
    bezierPath.move(to: CGPoint(x: size.width * 0.3, y: size.height * 0.9))
     bezierPath.addLine(to: CGPoint(x:size.width/2 , y: self.size.height/1.22))
   bezierPath.addCurve(to: CGPoint(x: 0, y: 12.0),
                       controlPoint1: CGPoint(x: 2, y: 14),
                       controlPoint2: CGPoint(x: 0, y: 14))
    bezierPath.addLine(to: CGPoint(x:size.width * 0.3 , y: self.size.height/1.22))
    bezierPath.addLine(to: CGPoint(x: 210.5, y: 192.5))
    bezierPath.addLine(to: CGPoint(x: 67.5, y: 222.5))
    bezierPath.addLine(to: CGPoint(x: 33.5, y: 291.5))
    bezierPath.addLine(to: CGPoint(x: 78.5, y: 379.5))
    bezierPath.addLine(to: CGPoint(x: 210.5, y: 421.5))
    UIColor.red.setStroke()
    bezierPath.lineWidth = 1
    bezierPath.stroke()

let neptune = SKSpriteNode(imageNamed: "Neptune")
neptune.anchorPoint = CGPoint(x: 0.5, y: 0.5)
neptune.setScale(0.45)
neptune.position = CGPoint(x: size.width * 0.3 , y: size.height * 0.9)

neptune.zPosition = 2
neptune.name = "bouton1"
self.addChild(neptune)

let uranus = SKSpriteNode(imageNamed: "Uranus")
uranus.anchorPoint = CGPoint(x: 0.5, y: 0.5)
uranus.setScale(0.35)
uranus.position = CGPoint(x: self.size.width/2, y: 
self.size.height/1.22)
uranus.zPosition = 2
uranus.name = "bouton1"
self.addChild(uranus)

1 Ответ

0 голосов
/ 25 марта 2019

Способ, которым вы пытаетесь обвести путь, работает, только если у вас есть активный контекст рендеринга. В SpriteKit, если вы хотите визуализировать путь в вашей сцене, вы должны создать SKShapeNode из вашего пути и добавить его в сцену:

var shape = SKShapeNode()
shape.path = bezierPath.CGPath
shape.strokeColor = SKColor.red
self.addChild(shape)
...