私は学校向けのプロジェクトのUIを開発しており、ここにリストされているようにテクスチャをスケーリングするのと同様の方法を試しましたが、ここに問題があります。
私たちのプロジェクトは1440x900で開発されているので、その画面解像度に合う独自の画像を作成しました。クラスでプロジェクトをデモする必要がある場合、プロジェクターは1024 x 768までしかレンダリングできないため、画面上の多くのものが失われます。ウィンドウのサイズ変更機能を追加し、このようにスケーリングを行っています。テクスチャ2dと、Button(Texture2d img、float width、float height)によって圧縮されたVector2位置を持つ「button」という独自のクラスがあります。
私の考えは、画像の位置をウィンドウの幅と高さのスケーラブルな%に設定することです。そのため、画像の位置を0-1の間の数値に設定してから、ウィンドウの幅と高さを乗算して、すべてを適切にスケーリングしてください。
(このコードは適切な構文ではありません。私は要点を伝えようとしているだけです)
Button button = new Button(texture, .01, .01 );
int height = graphicsdevice.viewport.height * button.position.Y;
int width = graphicsdevice.viewport.width * button.position.X;
Rectangle rect = new Rectangle(0,0,width, height);
sprite.being()
sprite.draw (button.img, rect, color.white);
sprite.end
それを描画し、マウスをドラッグしてウィンドウのサイズを変更しても、何もスケーリングされません。そもそも別のバッファの高さとバッファ幅でハードコーディングすると、解像度に関係なく画像はほぼ同じサイズのままになります。ただし、解像度が小さいほど、画像のピクセル化が進みます。
動的なtexture2dスケーリングを可能にするようにプログラムを設計するための最良の方法は何ですか?