Bewegen eines Objekts mit einer bestimmten Geschwindigkeit über den Bildschirm. (Sprite Kit)

Ich habe ein Objekt, das auf dem Bildschirm auf und ab bewegt werden muss. Wenn Sie zum ersten Mal klicken, wird der Bildschirm auf einen Endpunkt mit einer Dauer von 3 Sekunden verschoben. Sie können jederzeit darauf klicken, um zu verhindern, dass es nach unten bewegt wird, und es kann nach 3 Sekunden wieder auf einen anderen Endpunkt bewegt werden. Wenn Sie auf diese Weise auf das Objekt klicken, um es nach unten zu verschieben, und dann sofort erneut klicken, um es nach oben zu verschieben, bewegt sich das Objekt nach oben, jedoch mit einer sehr langsamen Geschwindigkeit, da es eine Dauer von 3 Sekunden hat. (Ich hoffe, das macht Sinn) Ich möchte also damit aufhören, die Dauer zu verwenden, um das Tempo / die Geschwindigkeit einzustellen, mit der sich das Objekt bewegt. Gibt es eine Möglichkeit zu sagen, dass Sie mit Leergeschwindigkeit zu Punkt x.y gehen? Vielen Dank. (Egal, wo sich das Objekt befindet und wohin es sich bewegen muss, ich möchte, dass es sich immer im gleichen Tempo bewegt.)

Das ist, was ich benutze, um das Objekt gerade zu verschieben:

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)
}

Code nach Korrekturen:

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)
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage