Я пытаюсь создать игру, в которой пользователь будет рисовать линию, которая получит физическое тело, поскольку это будет рампа для нашего главного героя.Игровая камера привязана к главному герою.
Если главный герой находится в движении и, как следствие, игровая камера, линии, по-видимому, нарисованы недостаточно быстро, что приводит к появлению пропусков, делающих невозможным, илискользить по главному герою.
Принимая во внимание, что если главный герой не двигается, и я рисую линию, это лучше, но не идеально (см. прикрепленные изображения)
У меня есть файл помощника для моеголиния, которая является подклассом 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)
}
}
Моя проблема заключается в том, когда я рисую линию, пока мои сани неподвижнылиния выглядит сплошной: пожалуйста, игнорируйте сани, находящиеся не в центре
, но когда сани движутся, хотя и очень быстро, линия становится разнесенной на квадраты по сравнению с линией: если яоставив палец на экране (рисуя линию), пока сани движутся, это происходит
Что я могу сделать, чтобы мои линии были гладкими, чтобы сани скользили по всей линии?