2016-04-02 22 views
0

私はラベルを下にスライドさせたいゲームを構築しています。私はこれを見たvideoそれはうまく動作しますが、それは私のプロジェクトでは動作しません、それ(firstLabel)が消えて、予想される座標に表示されます。スライドラベルを下に移動

UIView.animateWithDuration(0.5, delay: 0.0, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.0, options: [], animations: { 

    self.firstLabel.position = CGPoint(x: self.frame.width/1.125, y: self.frame.height/3) 

    }, completion: nil) 

シモンズ:私はあなたがあなたのフレームワークを混乱していると思います

+0

SKLabelNodeはUIViewではないため、UIViewアニメーションコンテキストでは管理されません。あなたは、そのエンティティをアニメーション化するためにSpriteKitの機能を調べなければなりません。 –

+0

申し訳ありませんが、私はコーディングが全く新しいと言っていることを忘れていました。どのように私はそれを調べますか? SpriteKitのアニメーションについて話す場所はありますか? – Luiz

答えて

1

SKLabelNode()としてfirstLabelが宣言されました。 UIViewアニメーションブロックを使用して、SpriteKitノードではなくUIViewをアニメーション化します。あなたが探しているものはSKActionです。

self.firstLabel.runAction(
    SKAction.moveTo(
     CGPoint(x: self.frame.width/1.125, y: self.frame.height/3), 
     duration: 0.5 
    ) 
) 
+0

ありがとうございます!それは完全に働いた! – Luiz

+0

しかし、これを「バウンス」にしたい場合は、0.0(基本スライド)ではなく、0.2に設定します(前述の動画のように6:13-)。 SKAction(または別の方法)でこの作業を行うにはどうすればよいですか? – Luiz

+0

@ルイズ私は正確に分かりませんが、SKActionを独自の変数に分割し、[timingFunction](https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKAction_Ref/)を利用することができます。 index.html#// apple_ref/occ/instp/SKAction/timingFunction)プロパティ。これは、Floatを受け取って返す関数を取り、それを使ってタイミングを指定することができます。私はこれに必要な数学に精通していません。残念ですが、私が知る限り、UIKitにはこのような「アウトオブザボックス」ソリューションはありません。 –

関連する問題