1

特定の水平および垂直速度に基づいて、画面上でサーフェスを移動する必要があります。これらの速度を完全にランダムにする必要があります。私のアイデアは、ランダムな浮動小数点数 (私は成功しました) を生成し、それらを速度として使用することでした。このようにして、速すぎたり遅すぎたりすることなく、さまざまな速度を設定できました。問題は次のとおりです。サーフェスが描画される新しい四角形を決定するためのパラメーターとしてSDL_BlitSurfacea のみを受け入れ、4 つの s で構成される構造体です。2 つは座標用、2 つは次元用です。SDL_RectSDL_Rectint

再開: SDL でサーフェスをブリッティングする際に正確に作業するにはどうすればよいですか?

4

3 に答える 3

1

SDL_BlitSurface残念ながら、「ハーフピクセル」を持つことはできません。オブジェクトの座標を として表す必要がありますが、オブジェクトをに渡すときに にfloat変換します。は常に画面のピクセルに完全に収まるため、グラフィックは常に鮮明なままでなければなりません。intSDL_RectSDL_Surface

そうは言っても、より正確にするために、 でクワッドをレンダリングすることに切り替えることができると思いますOpenGL。テクスチャが画面のピクセルと適切に整列されていない場合、ハードウェアはテクスチャのピクセル カラーを計算し、その結果、「ぼやけた」テクスチャになりますが、少なくともそれらの位置を完全に制御できます。

于 2013-07-10T01:56:00.227 に答える
0

レンダリング時にサブピクセル精度を扱うのは意味がありません。定義上、ピクセルはラスター グラフィックスでアドレス可能な最小の要素だからです。

代わりに、レンダリング時に位置を最も近い整数に丸めることができます(Sint16)(x+0.5)。アプリケーションの残りの部分は、必要に応じてより高い精度で座標を使用できます。

于 2013-07-09T11:46:44.347 に答える