2016-07-03 3 views
0

解像度に関係なくすべてのオブジェクトが同じ相対距離に移動するウィンドウを作成しようとしています。私は、-1の範囲にビューポートを設定する1、1、-1、iはOpenGLはウィンドウサイズに応じてオブジェクトベースを変換します

によって
int number_of_pixels = 10; 
float x_pixel_value = (1f/(window.getWidth()/2)); 
float move_x_value = x_pixel_value * number_of_pixels; 

float y_pixel_value = (1f/(window.getHeight()/2)); 
float move_y_value = y_pixel_value * number_of_pixels; 

をピクセル距離を計算していた距離を正しくスケールするようだが、私は小さなでオブジェクトを移動するとしています解像度がより大きい場合に比べてはるかに高速に動きます。 例えば、オブジェクトは720pで画面下まで移動するのに2秒かかりますが、100x100では0.3秒かかります。

フレームリミッタを実装しようとしましたが、フレームリミッタが遅れていないことを確認して、動きは遅くなりましたが、何もしませんでした。

Larger resolution

Smaller resolution

+0

私はそれを取得しません。 xピクセル/秒の一定のウィンドウスペース速度でオブジェクトを移動したい場合は、720pixels/2sの移動速度では0.277777を取る100ピクセルの動きが生じることは、まさにもっともらしいことです。 – derhass

+0

私の目標は、ウィンドウサイズに関係なく一定の速度で移動するオブジェクトを持つウィンドウを持つことです。例: http://prntscr.com/boavg3 旅行に同時刻にかかるだろうか? http://prntscr.com/boavp4 –

+0

「一定速度」を定義する。何に相対的なスピードですか?現実との関係? 1秒あたりのピクセル数に比例しますか? –

答えて

1

ウィンドウの大きさに依存しない一定の値を使用してください。

クリッピングボリュームは、各方向にいくつのピクセルがあるか気にしません。 (-1、-1)のオブジェクトは常に左下隅にあり、(1,1)は常に右上隅になります。同じことが速度にも当てはまります。ウィンドウの大きさを実際に使用する場合は、glOrthoを呼び出してクリッピング量を変更してください。

関連する問題