1

私は最近、レベルの境界を越えてスクロールすると、カメラがゆっくりと境界に跳ね返るように、iOS UI のようなエッジ バウンス エフェクトを自分のゲームで実験して再現しようとしています。

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

easeInOut(currentTime, startValue, endValue, duration);

実際の実装は、http ://www.jesusgollonet.com/blog/2007/09/24/penner-easing-cpp/ から入手できます。

私はそれについて多くの情報を見つけることができなかったか、私が試みている種類の計算の正しい名前に慣れていないため、これは一種の灰色の領域であるという結論に達しました記述するために。2D ゲームまたは UI でのイージングイン/イージングアウトの計算で速度を使用することについて誰かアドバイスがあれば、ぜひ聞いてみたいです!

4

2 に答える 2

2

エッジとカメラの間に臨界減衰スプリングを使用できます。力は次のようになります F=-w*w*x - 2*w*v ここで、w はスプリングの固有振動数です (気に入った値が得られるまで、いくつかの異なる値を試してください) x は境界からの変位、v は電流です。速度。

于 2012-03-31T03:04:57.697 に答える
2

Cocos2d (および -x) には、CCEaseIn と CCEaseOutなどがあります。

これらは時間パラメーターを使用して作成するので、カメラの速度に基づいて時間をスケーリングすることはできませんか? 動きが速ければ速いほど、「跳ね返る」速度が速くなり、イーズ アクションに与えられる時間が短くなります。cocos2d にはすでに多くのイージング アクションが用意されているため、これには派手なトゥイーン実装は使用しませんでした。

于 2012-03-30T14:17:14.503 に答える