4年前から解決策が見つかってない難問誰か解いて

1名前は開発中のものです。
垢版 |
2020/01/16(木) 19:39:22.13ID:R1+QguPT
c++、DXlibな者です。
メインループ内で

x*=0.9f;

なりをまわすとぬるっとxが0に近づいていく。
ぬるっとしてるのでUIがリッチっぽくなるけど、

x+=0.1f;

などと違い、フレームレートが変動しても

fps=35;
x+=0.1f*60.f/fps;

みたいに補正することができない。

対策として、フレームレートに応じた値を保持しといて入れ替える

std::array<float,60> temp;

とか、
マリオのジャンプ式

x+=y;
y--;

みたいなのを考えていた。でも、
前者はメモリを食うし小数点以下を考えるとつらみ。
後者も等加速度直線運動なんで精度に難がある。
2名前は開発中のものです。
垢版 |
2020/01/16(木) 19:40:28.14ID:R1+QguPT
誰か対策を…そして4年の呪縛から解き放ってくれ…
2020/01/17(金) 03:08:10.39ID:xbKTeYck
HTML5のCSSアニメーションには多様なパラメータが用意されていて
少ないコード量で膨大なパターンを手軽に試行錯誤することができる

今回の件であれば
キーフレーム(何ミリ秒後にどういう状態にしたいか)の概念を取り入れるとか、
途中の状態の計算方法としてイージング(ease)を使ってみるとか
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況