2016-01-13 9 views
9

enter image description here両端の正方形の幅を増やす(アニメーション化する)方法は?

私は上記のように40x40の正方形を作成しました。私は正方形の位置にかかわらず、1秒以内に画面全体の幅を取るまで、私の正方形の幅をアニメーション化(増加)するために使用したい4×40のストリップを持っています。両側にあるプログレスバーのロードに似ています。

UPDATE

私は、正方形は物理体である、したがって、物理学本体はまた、スプライトの増加に伴って増加しなければならないことを言及するのを忘れてしまいました。

答えて

0

start_xを正方形の元のx位置に設定すると、オブジェクトの原点が左上(または少なくとも1つの軸上のものが変更されているため)であると仮定すると、その幅は、Xのあなたのストリップの位置、およびその幅にtarget_widthからtarget_x、へstart_width

x = start_x + (target_x - start_x) * a; 

width = start_width + (target_width - start_width) * a; 

そしてaとして0.0から1.0になり、xwidthは、ストリップと一致するように大きくなります。

これが役に立ちます。あなたは左右が均等にスケールしないようにしたい場合は今

SKAction.scaleXTo(sceneWidth/spriteWidth, duration: 1). 

、代わりに両方の縁に到達:あなたが探しているものを達成するためにSKAction.scaleXToを使用されて何をしたいのか

2

同じ時間に、アンカーポイントを変更することができます。

この背後にある数学は、あなたのオリジナルのアンカーポイントは、(0.5,0.5)

sprite.anchorPoint = CGPointMake(sprite.position.x/scene.width,sprite.anchorPoint.y) 

例えばあることを前提としていシーンサイズの幅は100、スプライトはx 75

これは基本的に、あなたのスプライトがシーンのある割合、例では75%であるということです。アンカーポイントを.75に変更すると、アンカーポイントの左側が幅の75%を占めているため、幅を拡張するときに左側が右側より速く塗り潰され、右側側面は幅の25%を占める。

スケールを2に設定すると、アンカーポイントの左側が150%になり、右側が50%になります。

+0

@KnightOfDragon:ありがとうございます。私はあなたのアプローチが本当に好きです。私を許してください、私はスプライトが物理学のボディを持っていることを忘れていました。私はちょうど質問を更新しました。 – iGetIt

+0

また、物理学の体を増やす必要がある場合は、この数学をした後に数学を適用する必要があります。私の答えはこちらhttp://stackoverflow.com/questions/34581226/how-to-make-physics-bodies-stick-to-nodes-anchor-points/34584013#34584013を参照してください。体はスプライトのサイズに一致する – Knight0fDragon

+0

@ Knight0fDragonあなたがこれを見てみることがありがとうと思いますhttp://stackoverflow.com/questions/40458673/issues-scaling-sprite-width-to-screen-width – NSologistic

関連する問題