Перемещение объекта по экрану с определенной скоростью. (Sprite Kit)
У меня есть объект, который должен двигаться вверх и вниз по экрану. При первом нажатии он перемещается вниз по экрану до конечной точки продолжительностью 3 секунды. Вы можете щелкнуть в любое время, чтобы остановить его движение вниз и заставить его двигаться вверх к другой конечной точке, снова в течение 3 секунд. Проблема с этим заключается в том, что если вы щелкаете, чтобы переместить объект вниз, а затем сразу же нажимаете снова, чтобы переместить его вверх, объект движется вверх, но с очень низкой скоростью, потому что его продолжительность составляет 3 секунды. (Надеюсь, это имеет смысл) Итак, я хочу прекратить использовать продолжительность, чтобы установить темп / скорость, с которой объект движется. Есть ли способ сказать, двигаться в точку x.y на пустой скорости? Спасибо. (Независимо от того, где находится объект и он должен двигаться, я хочу, чтобы он всегда двигался с одинаковой скоростью.)
Вот что я использую для перемещения объекта прямо сейчас:
func moveObject(){
let endpoint = CGPoint(x: self.size.width / 2 , y: self.size.height / 1.8888888888 )
let moveObject = SKAction.moveTo(endpoint, duration: 3.0 )
let moveObjectSequence = SKAction.sequence([moveLine])
Object.runAction(moveLineSequence)
}
Код после исправлений:
func dropLine(){
if hookNumber == 1{
let endpoint = CGPoint(x: self.size.width / 2 , y: self.size.height / 1.8888888888 )
let moveLine = SKAction.moveTo(endpoint, duration: getDuration(fishLine.position,pointB:endpoint,speed:300.0))
let moveLineSequence = SKAction.sequence([moveLine])
fishLine.runAction(moveLineSequence)
}
}
func dropHook(){
if hookNumber == 1{
let endpoint = CGPoint(x: self.size.width / 2 , y: self.size.height - 2030)
let moveLine = SKAction.moveTo(endpoint, duration: getDuration(fishHook.position,pointB:endpoint,speed:300.0))
let moveLineSequence = SKAction.sequence([moveLine])
fishHook.runAction(moveLineSequence)
hookNumber = 2
}
}
func raiseLine(){
if hookNumber == 2{
let endpoint = CGPoint(x: self.size.width / 2 , y: 3050 )
let moveLine = SKAction.moveTo(endpoint, duration: getDuration(fishLine.position,pointB:endpoint,speed:300.0))
let moveLineSequence = SKAction.sequence([moveLine])
fishLine.runAction(moveLineSequence)
}
}
func raiseHook(){
if hookNumber == 2{
let endpoint = CGPoint(x: self.size.width / 2 , y: self.size.height - 3 )
let moveLine = SKAction.moveTo(endpoint, duration: getDuration(fishHook.position,pointB:endpoint,speed:300.0))
let moveLineSequence = SKAction.sequence([moveLine])
fishHook.runAction(moveLineSequence)
}
}