Как заставить мои прямоугольники перемещаться по кругу в зависимости от перетаскивания пользователя? - PullRequest
0 голосов
/ 18 марта 2019

Я хотел бы попытаться заставить объект перемещаться в зависимости от того, куда пользователь перетаскивает. На данный момент у меня есть круги, движущиеся по кругу с этим кодом:

Как это выглядит (изображение)

let rotateAction = SKAction.rotate(byAngle: 2.0 * CGFloat(M_PI), duration: 8.0)
container.run(SKAction.repeatForever(rotateAction))

А это мой код для создания прямоугольников:

let path = UIBezierPath()

    path.move(to: CGPoint(x: 0, y: -200))

    path.addLine(to: CGPoint(x: 0, y: -160))

    path.addArc(withCenter: CGPoint.zero,
                radius: 160,
                startAngle: CGFloat(3.0 * M_PI_2),
                endAngle: CGFloat(0),
                clockwise: true)

    path.addLine(to: CGPoint(x: 200, y: 0))
    path.addArc(withCenter: CGPoint.zero,
                radius: 200,
                startAngle: CGFloat(0.0),
                endAngle: CGFloat(3.0 * M_PI_2),
                clockwise: false)

    let section = SKShapeNode(path: path.cgPath)
    section.position = CGPoint(x: 0, y: 0)
    section.fillColor = .white
    section.strokeColor = .white

    let section2 = SKShapeNode(path: path.cgPath)
    section2.position = CGPoint(x: 0, y: 0)
    section2.fillColor = .white
    section2.strokeColor = .white
    section2.zRotation = CGFloat(M_PI);

    container.addChild(section)
    container.addChild(section2)

    addChild(container)

А когда пользователь перетаскивает:

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {

    let rotateAction = SKAction.rotate(byAngle: 2.0 * CGFloat(M_PI), duration: 8.0)
    container.run(SKAction.repeatForever(rotateAction))
}

Я бы хотел помочь с этим.

Спасибо!

...