Movendo um objeto pela tela a uma certa velocidade. (Kit Sprite)
Eu tenho um objeto que precisa mover para cima e para baixo na tela. Quando você clica pela primeira vez, ele desce a tela para um terminal com uma duração de 3 segundos. Você pode clicar a qualquer momento para impedir que ele desça e fazer com que ele comece a subir para um terminal diferente, novamente com a duração de 3 segundos. O problema de fazê-lo dessa maneira é que, se você clicar para mover o objeto para baixo, mas imediatamente clicar novamente para movê-lo para cima, o objeto move-se para cima, mas a uma taxa muito lenta, porque tem uma duração de 3 segundos. (Espero que isso faça sentido). Então, o que eu quero é parar de usar a duração para definir o ritmo / velocidade na qual o objeto se move. Existe uma maneira de dizer mover para o ponto x.y na velocidade em branco? Obrigado. (Não importa onde o objeto esteja e precise ser movido, quero que ele sempre se mova no mesmo ritmo.)
Isto é o que eu uso para mover o objeto agora:
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)
}
Código após correções:
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)
}
}