2012-03-30 2 views
1

私は最近、ゲームでエッジバウンス効果のiOS UIソートを再現しようと試みてきたので、レベルの境界を超えてスクロールすると、カメラはゆっくりとバウンスします境界。2dゲームフィジックスはベロシティに基づいて入/出しやすくする

現時点では、ActionScriptから移植されたRobert Pennerのトゥイーン計算の一部を実装しましたが、カメラの速度を考慮していないため、これが正しいアプローチであるかどうかはわかりません。実際の実装がここにあります

​​

::私は持っていないとして、これは灰色の領域の一種であるという結論に来ているhttp://www.jesusgollonet.com/blog/2007/09/24/penner-easing-cpp/

現時点では次のようになります私が説明しようとしている計算の種類の正しい名前に慣れていないか、それに関する多くの情報を見つけることができました。誰かが2dゲームやUIのイージングイン/アウト計算でベロシティを使用することについてアドバイスを持っているなら、私はそれを聞くことに非常に興味があります!

+0

この質問は、[gamedev.stackexchange.com](http://gamedev.stackexchange.com/) –

+0

にもっと適している可能性があります。 1つの簡単な方法は、[シグモイド曲線](http://en.wikipedia.org/wiki/Sigmoid_function)を使用することです。もう1つの方法は、オブジェクト/カメラが最終位置の途中にあるときに方向を切り替える移動方向に加速度ベクトルを持たせることです。 –

答えて

2

エッジとカメラの間にcritically dampedスプリングを使用できます。あなたは、F = -w * w * x - 2 * w * vとなります。ここで、wは春の固有振動数です(好きなものが得られるまでいくつかの異なる値を試してください)。xは境界からの変位、速度。

+0

これは絶対的な魅力のように機能し、正確に必要なものでした。あなたのご意見のおかげで、同様のトピックに関する追加資料も検索しました。 – Aequitas

2

Cocos2d(および-x)は、CCEaseInおよびCCEaseOut、among many othersを有する。

時間パラメータを使用してこれらを作成するので、カメラの速度に基づいて時間を拡大するだけでは問題ありませんか?より速く動くほど、速いほど簡単操作に与えられる短い時間で「跳ね返る」。私はcocos2dが既に利用可能な多くのイージングアクションを持っているので、このための実装にはファンシーなトゥイーンを使用していませんでした。

+0

カメラの動きはcocos2dのアクションシステムを使って実装されていませんが、これは実行可能な解決策ではないでしょうか。 – Aequitas

関連する問題