このような機能が必要です。横の値は時間で、縦の値は出力です。time から開始する0
と、値は-1
またはになり1
ます。時間を増やすと、値は と に1
なり-1
、「バウンス」するたびに距離が減少します。
私は過去にハックなコードでそれを行ったことがあります。変数にターゲット値を格納し、値がターゲット値に達するたびに、私はtargetValue *= -.5
そうします。
手動でこれを行う必要のない、数学関数を使用したより良い実装があるかもしれません。私にとって、それは三角関数のようなものですが、最終的な出力は で乗算され1 - (time / maxTime)
、波ではなく線です。