2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

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
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★