私は、画面を上下に移動する必要があるオブジェクトを持っています。最初にクリックすると、画面が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)
}
}
@AlessandroOmano私はこれを行い、その問題を解決しました。ありがとう。しかし、それは奇妙な不具合を作り出しました。グリッチは説明するのが非常に難しいので、私は起こっている不具合を示すビデオにリンクを付けるつもりです。私は必要なコードも含めます。ここでは、起こっている不具合のビデオへのリンクがあります:https://www.youtube.com/watch?v = jHE5RC-mvwU前にグリッチが発生していません。なぜそれが起こっているのか知っていますか?もしそうなら、私は何を止める必要がありますか?元の投稿に新しいコードを追加します。 – james
私はビデオとあなたのコードの両方を見ました。私はあなたのような巨大な価値を使ったとき、このような経験をしています。例えばtopがself.frame.height-20に等しい場合、ボールを隠すために、例えばself.frame.height + 40のエンドポイントを使用しようとすると、巨大な値を使用しないでください。ビデオの典型的なグリッチタイプ、同じことが底部に適用される –
あなたが "巨大な価値"と言うときは、エンドポイントを意味します。もしそうなら、エンドポイントをself.frame.height + 40に変更しましたが、グリッチはまだ発生しました。 – james