Если вы играли в Angry Birds или любой бассейн игру, прежде чем вы бы знакомы с тем, что я пытаюсь сделать, в основном то, что я хочу это:Нарисуйте прямую линию для прицеливания
1- Нарисуйте линию в touchesMoved так, что игрок может знать, в каком направлении он нацеливается.
2- Я хочу, чтобы линия отражалась в правильном направлении, когда она попадает на другие объекты. До сих пор у меня есть это:
Update:
var ref = CGPathCreateMutable()
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch in touches {
let location = touch.locationInNode(self)
let path = CGPathCreateMutable()
CGPathMoveToPoint(ref, nil, position.x - 100 , position.y - 100)
CGPathAddLineToPoint(ref, nil, -location.x, -location.y)
line.removeFromParent()
line.path = ref
line.strokeColor = UIColor.redColor()
line.lineWidth = 20
line.antialiased = true
line.fillColor = UIColor.blueColor()
addChild(line)
}
}
Я добавил - до того места, так что линия получает втягивается перед узлом ао она дает более прицеливания смысл, но оставить меня с 2 проблемами:
1- Я хочу, чтобы линия имела предел, в котором она попала перед узлом, но в то же время я хочу, чтобы ее конец был текущим местоположением касания. (В принципе, я хочу, чтобы он проходил через узел)
2- Я до сих пор не знаю, как я могу заставить его задуматься под прямым углом, когда он попал в стену, или что-то такое, что дает представление об узле отскакивают от этой стены.
Я не специалист по Sprite или даже Swift, но похоже, что вам нужно мутировать объект SKShapeNode вместо создания нового. – dantiston