4年前から解決策が見つかってない難問誰か解いて
- 1 :名前は開発中のものです。:2020/01/16(木) 19:39:22.13 ID:R1+QguPT.net
- 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.14 ID:R1+QguPT.net
- 誰か対策を…そして4年の呪縛から解き放ってくれ…
- 3 :名前は開発中のものです。:2020/01/17(金) 03:08:10.39 ID:xbKTeYck.net
- HTML5のCSSアニメーションには多様なパラメータが用意されていて
少ないコード量で膨大なパターンを手軽に試行錯誤することができる
今回の件であれば
キーフレーム(何ミリ秒後にどういう状態にしたいか)の概念を取り入れるとか、
途中の状態の計算方法としてイージング(ease)を使ってみるとか
- 4 :名前は開発中のものです。:2020/01/17(金) 10:48:45 ID:878dgjlU.net
- よくわからない、ガンダムで例えてくれ...
- 5 :名前は開発中のものです。:2020/01/17(金) 17:44:47.78 ID:dI55HHmX.net
- >>4
ガンダムがアムロの動きに合ってくれないのでマグネットコーティングの塗り方教えてくれ
- 6 :名前は開発中のものです。:2020/01/17(金) 20:49:46.75 ID:YRNiJPaW.net
- アムロ父が酸素欠乏症だった感じ
- 7 :名前は開発中のものです。:2020/01/18(土) 19:55:44.33 ID:vHCBk4qI.net
- よくわからないガンダム=武者ガンダム
- 8 :名前は開発中のものです。:2020/01/19(日) 12:41:27.38 ID:naY6xUXg.net
- x*=0.9f ^ (60/フレームレート)
じゃダメなのか?
- 9 :名前は開発中のものです。:2020/01/19(日) 12:55:01.10 ID:naY6xUXg.net
- cだと^はビット演算なのか
x*=pow(0.9f, 60/fps)ね
- 10 :名前は開発中のものです。:2020/01/19(日) 18:43:23.28 ID:6oYVQhv+.net
- p+=x*60.0f/fps
x*=pow(0.9f,60.0/fps)
これで行けたわ、9サンガツ
(試験用にHSPで組んだやつ)
repeat 2
if(cnt=0){ fps=60.0 : color 0,0,255 }
else{ fps=75.0 : color 255,0,0 }
p=0.0 : q=0.0 : x=1.0
line 0,0,0,0
repeat int(fps)
q+=60.0/fps
p+=x*60.0/fps : x*=powf(0.9,60.0/fps)
line q*10,p*10
loop
loop
stop
- 11 :名前は開発中のものです。:2023/10/12(木) 15:30:48.02 ID:Sd4ANNLC.net
- ~~~-y( -)^^) ブチュッ
3 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★