Сначала я рисую линию с SKShapeNode
.
var path = CGPathCreateMutable()
p0 = CGPointMake(-(self.frame.size.width/2), 100.0)
CGPathMoveToPoint(path, nil, p0.x, p0.y)
p1 = CGPointMake(self.frame.size.width/2, 100.0)
CGPathAddLineToPoint(path, nil, p1.x, p1.y)
line = SKShapeNode(path: path)
line.strokeColor = UIColor.purpleColor()
addChild(line)
Это прекрасно работает. Он рисует фиолетовую линию на экране. Я пытаюсь обновить путь этой строки в функции обновления, которая вызывается 60 раз в секунду. Это изгибает линию на основе пальца пользователя.
override func update(currentTime: CFTimeInterval) {
var path = CGPathCreateMutable()
CGPathMoveToPoint(path, nil, p0.x, p0.y)
CGPathAddQuadCurveToPoint(path, nil, fingerLocation.x, fingerLocation.y, p1.x, p1.y)
line.path = path
}
Как только запускается функция обновления, линия исчезает. Я не знаю, правильно ли я использую процедуру обновления пути к файлу SKShapeNode
. Я не могу найти никакой информации о том, как это сделать. Я получаю fingerLocation
из метода touchesMoved
, используя touch.locationInNode(self)
.
update:
, который будет вызываться перед каждым обновлением кадра. Имейте в виду, что он не всегда будет вызываться 60 раз в секунду. - person Andrew   schedule 14.08.2014