Почему я получаю прерывистые линии при рисовании линии через CGMutablePath () - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь создать игру, в которой пользователь будет рисовать линию, которая получит физическое тело, поскольку это будет рампа для нашего главного героя.Игровая камера привязана к главному герою.

Если главный герой находится в движении и, как следствие, игровая камера, линии, по-видимому, нарисованы недостаточно быстро, что приводит к появлению пропусков, делающих невозможным, илискользить по главному герою.

Принимая во внимание, что если главный герой не двигается, и я рисую линию, это лучше, но не идеально (см. прикрепленные изображения)

У меня есть файл помощника для моеголиния, которая является подклассом SKShapenode

init(position: CGPoint, previousPosition: CGPoint) {

    super.init()
    let path = CGMutablePath()
    path.move(to: position)
    path.addLine(to: previousPosition)
    self.path = path
    physicsBody = SKPhysicsBody(edgeChainFrom: path)
    physicsBody?.isDynamic = false
    physicsBody?.friction = 0
    physicsBody?.restitution = 0
    physicsBody?.categoryBitMask = PhysicsCategory.line
    physicsBody?.contactTestBitMask = PhysicsCategory.sleigh
    physicsBody?.collisionBitMask = PhysicsCategory.line | PhysicsCategory.sleigh
    name = "line"
    lineWidth = 10
    zPosition = 10
}

Я также использую функцию touchesMoved для рисования линии:

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

    for t in touches {

        let location = t.location(in: self)
        let previousLocation = t.previousLocation(in: self)
        let line = Line(position: location, previousPosition: previousLocation)
        addChild(line)
    }
}

Моя проблема заключается в том, когда я рисую линию, пока мои сани неподвижнылиния выглядит сплошной: пожалуйста, игнорируйте сани, находящиеся не в центре

, но когда сани движутся, хотя и очень быстро, линия становится разнесенной на квадраты по сравнению с линией: если яоставив палец на экране (рисуя линию), пока сани движутся, это происходит

Что я могу сделать, чтобы мои линии были гладкими, чтобы сани скользили по всей линии?

...