2017-04-11 12 views
-1

I持って、私は、特定の式(物理発射時間方程式)によって与えられるXとYに従って移動すると、私はそれが見えるように、それが1秒ごとに移動するUIimage最後のポジションで消えて再び出現するのではなく、与えられたポジションは間違っていると思います。どちらかまたは両方の問題については、私は助けていただければ幸いです。UIimageが移動行う毎に1秒

運動機能:Onボタン

func moveCannonBall(toX:Int , toY:Int){ 
    var frm: CGRect = ballimageview.frame 
    frm.origin.x = frm.origin.x + CGFloat(toX) 
    frm.origin.y = frm.origin.y - CGFloat(toY) 
    ballimageview.frame = frm 
} 

は、ユーザーの入力を取ることになっていますクリック(重力、角度、及び初速)

@IBAction func getAlpha(sender:AnyObject){ 
    gravity = Float(g[pickerView.selectedRow(inComponent: 0)]) 
    xMax = ((V0*V0)*sin(2.0*angle))/gravity 

は、これまでのところ、私はこれを試してみました

1秒ごとに停止するはずですが、1秒ごとに計算が一時停止し、UIimageが消えて再び表示されます。

while Int(toX) < Int(xMax) { 
     sleep(1) 
     t = t + 1 

     toX = V0*cos(angle)*t 
     toY = -0.5*gravity*t*t + V0*sin(angle)*t 

     moveCannonBall(toX: Int(toX), toY: Int(toY)) 
    } 
} 

すべてのヘルプは高く評価されます。

+1

**決して**どのような形式のメインキューでも「スリープ」を使用しないでください。 – rmaddy

+0

これは単純な一時停止ではありませんか? – Ace

+1

簡単な答えはいいえ、そうではありません。あなたは 'UIView.animateWithDuration'メソッドを調べる必要がありますが、素敵なカーブに沿ってボールを動かすのは簡単ではありません。 – Losiowaty

答えて

-1

Losiowaty氏によると、UIView.animationWithDurationは方法です。この答えをチェックして構文がどのようになっているかを確認してください。https://stackoverflow.com/a/30992214/5257729

関連する問題